我有一个字母数组,说如果用户使用字母A,那么使用此方法,用户的字母将从A更改为B。
public class Letter {
private char letter;
public Letter(){
letter = 'A';
}
public char volgende(){
char[] alfabet = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
for (int i=0; i <= alfabet.length-1 ; i++) {
if (alfabet[i] == letter){
letter = alfabet[i++];
}
}
System.out.println("Nieuwe letter is " + letter);
return letter;
}
我希望此代码将默认字母A转换为B,但事实并非如此。我曾尝试用char'B'替换alfabet [i ++],但这行得通,所以我不知道为什么alfabet [i ++]不会,因为它是数组中的下一项。
答案 0 :(得分:2)
您正在使用后递增运算符。您需要使用预递增运算符,例如
letter = alfabet[++i]
通过拼写字母的方式,请记住Z
会导致IndexOutOfBoundsException错误,因为它是最后一个索引。