我不确定,但我认为我的问题是我的功能没有比较字符的权利。我是否也使用Switch?我的“解密”代码无法正常工作
我的输入x是一个字符串,当x =“aaaaa”时,它返回“aaaaa”而不是“zzzzz”。
String c = "";
for (int i = 0; i < x.length(); i++) {
char getChar = x.charAt(i);
switch (getChar) {
case 1: (getChar) = 'a';
c += "z";
break;
case 2: (getChar) = 'b';
c += "y";
break;
case 3: (getChar) = 'c';
c += "x";
break;
case 4: (getChar) = 'd';
c += "w";
break;
case 5: (getChar) = 'e';
c += "v";
break;
case 6: (getChar) = 'f';
c += "u";
break;
case 7: (getChar) = 'g';
c += "t";
break;
case 8: (getChar) = 'h';
c += "s";
break;
case 9: (getChar) = 'i';
c += "r";
break;
case 10:(getChar) = 'j';
c += "q";
break;
case 11:(getChar) = 'k';
c+= "p";
break;
case 12:(getChar) = 'l';
c += "o";
break;
case 13:(getChar) = 'm';
c += "n";
break;
default :
c += x.charAt(i);
}
}
System.out.println(c);
}
您应该使用'case'a'' ..来代替。 ''a''的十进制值不为0.另外使用['StringBuilder'](http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html)替代'+'。 – Maroun
@MarounMaroun为什么使用StringBuilder而不是我所做的更好? – user3717963
有关详细信息,请参见[此链接](http://www.yoda.arachsys.com/java/strings.html)。 – Maroun