我不確定,但我認爲我的問題是我的功能沒有比較字符的權利。我是否也使用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