在我的程序中,有时它会要求用户输入,并且在输出相同的输入但带有一些replaceAll()
. 这是我想做的事情:
数组表:
public static String[][] Alphabet = {
{"a", "w"}, // 0 0 / 0 1
{"b", "t"}, // 1
{"c", "e"}, // 2
{"d", "k"}, // 3
{"e", "c"}, // 4
{"f", "j"}, // 5
{"g", "h"}, // 6
{"h", "g"}, // 7
{"i", "o"}, // 8
{"j", "f"}, // 9
{"k", "d"}, // 10
{"l", "s"}, // 11
{"m", "q"}, // 12
{"n", "y"}, // 13
{"o", "i"}, // 14
{"p", "u"}, // 15
{"q", "m"}, // 16
{"r", "v"}, // 17
{"s", "l"}, // 18
{"t", "b"}, // 19
//etc....
然后进一步降低我的代码:
Scanner Mode1_Input = new Scanner(System.in);
String mode1_input = new String(Mode1_Input.nextLine());
if(mode1_input != null && !mode1_input.isEmpty()){
for(int i = 0; i < 62; i++){ // 62 = [a-z]+[A-Z]+[0-9]
mode1_input = mode1_input.replaceAll(Alphabet[i][0], Alphabet[i][1]);
}
System.out.println(mode1_input);
//etc...
问题是:“a”将替换为“w”:所以“a”现在是“w”。但是当'w'来的时候,它会重新变成'a'!:(
是否有可能让它查看每个字符一次以避免这种烦人的变化?
查看问题的其余部分,查看以下帖子的评论:“不知道名称”
'No Idea for Name' 的更多代码:
public static String[][] Alphabet = {
{"a", "1"},
{"b", "2"},
{"c", "3"},
{"d", "4"},
{"e", "5"},
{"f", "6"},
{"g", "7"},
{"h", "8"},
{"i", "9"},
{"j", "10"},
{"k", "11"},
{"l", "12"},
{"m", "13"},
{"n", "14"},
{"o", "15"},
{"p", "16"},
{"q", "17"},
{"r", "18"},
{"s", "19"},
{"t", "20"},
{"u", "21"},
{"v", "22"},
{"w", "23"},
{"x", "24"},
{"y", "25"},
{"z", "26"},
{"1", "w"},
{"2", "t"},
{"3", "e"},
{"4", "k"},
{"5", "c"},
{"6", "j"},
{"7", "h"},
{"8", "g"},
{"9", "o"},
{"10", "f"},
{"11", "d"},
{"12", "s"},
{"13", "q"},
{"14", "y"},
{"15", "i"},
{"16", "u"},
{"17", "m"},
{"18", "v"},
{"19", "l"},
{"20", "b"},
{"21", "p"},
{"22", "r"},
{"23", "a"},
{"24", "z"},
{"25", "n"},
{"26", "x"},
}
... (Skiping Scanner and other...)
for(int i = 0; i < 52; i++){
mode1_input = mode1_input.replaceAll(Alphabet[i][0], Alphabet[i][1]);
}
System.out.println(mode1_input);
Thanks, 3751_Creator