java - 将下一个数组项设置为变量的新值的方法?
问题描述
我有一个字母数组,如果用户有字母 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,但事实并非如此。我尝试将 alfabet[i++] 替换为 char 'B',但这有效,所以我不知道为什么 alfabet[i++] 不会,因为它是数组中的下一项。
解决方案
您正在使用后增量运算符。您需要使用预增量运算符,例如
letter = alfabet[++i]
顺便说一句,它是拼写字母,请记住,这Z
将导致 IndexOutOfBoundsException 错误,因为它是最后一个索引。
推荐阅读
- c# - newtonsoft 没有正确反序列化内部类中的双精度值
- java - 为什么它显示错误“从未使用分配的值”?
- window - 无法与 LXDE 中的窗口按钮交互
- javascript - React Bootstrap ButtonToolbar 不将按钮分开
- ios - 关于 Metal 中 alpha 的输出
- javascript - 创建基于 HTML 输入的计算器
- flutter - 上传竞争条件 - Google Firebase 存储
- wordpress - 帖子分页在首页不起作用
- git - IntelliJ: Git Push Messed Everything Up
- proxy - OWASP ZAP - 无法拦截 SOAP API 请求