这不能正确输出。我已经读过使用\\但是这给了我另一个错误。任何帮助/替代方案?
string = string.replaceAll("a", newAlphabet.substring(0,1));
string = string.replaceAll("b", newAlphabet.substring(1,2));
string = string.replaceAll("c", newAlphabet.substring(2,3));
string = string.replaceAll("d", newAlphabet.substring(3,4));
string = string.replaceAll("e", newAlphabet.substring(4,5));
这只是代码的一部分。我试图更改消息,以便将字母表中的每个字母更改为另一个字母。像一个跳跃的字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 会变成类似的东西 zmlapqokxswncdejibvhfurtgy
所以a = z等
当我尝试获取输出时,其中一半是正确的,有些是完全错误的,我不知道为什么
答案 0 :(得分:0)
public String replace(CharSequence target,CharSequence replacement)
答案 1 :(得分:0)
嗯......您的代码问题在于,在您将字母“a”更改为字母“z”后,您仍然会将所有字母“z”更改为另一个字母,即使是已经是转型的结果。
答案 2 :(得分:0)
如果您的文字只有ASCII字符,其值为< 128(或256),我会去映射数组:
String original = "abcdefghijklmnopqrstuvwxyz";
String replacement = "zyxwvutsrqponmlkjihgfedcba";
int[] translate = new int[128];
for(int i = 0; i<128; i++) {
translate[i] = i; //default = not change
}
for(int i = 0; i<original.length(); i++) {
translate[original.charAt(i)] = replacement.charAt(i);
}
String toTranslate = "Hello world!";
StringBuilder sb = new StringBuilder();
for(int i = 0; i<toTranslate.length(); i++) {
sb.append((char) translate[toTranslate.charAt(i)]);
}
String result = sb.toString();
System.out.println(result); //prints: Hvool dliow!
Threre是创建translate
数组的更偏向的方式,但我希望这可以作为一个例子。