【发布时间】:2019-05-13 17:50:06
【问题描述】:
我不断收到 StringIndexOutOfBoundsException。我正在尝试获取一个字符串并将每个字母替换为它后面的字母,然后返回新的操纵字符串。例如,“嘿”是“Ifz”。
我已尝试更改索引,但没有任何效果。
String change = "";
char[] alpha = {'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 < alpha.length; i++) {
if(str.charAt(i) == alpha[i]) {
change += alpha[i+1] + "";
}
}
return change;
}
public static void main (String[] args) {
// keep this function call here
Scanner s = new Scanner(System.in);
System.out.print(LetterChanges(s.nextLine()));
}
Error Message:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: 18
at java.lang.String.charAt(String.java:658)
at Main.LetterChanges(Main.java:11)
at Main.main(Main.java:25)
【问题讨论】:
-
顺便说一下我有零钱+=。
-
确切的错误说:
-
错误:线程“main”中的异常 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:在 Main.LetterChanges(Main) 的 java.lang.String.charAt(String.java:658) 的 18 .java:11) 在 Main.main(Main.java:25)
-
change =+ str.charAt(i+1) + ""; 你的意思是把“+=”放在这里吗...?
-
@learning 最好将错误消息等信息放入问题本身,而不是使用“编辑”链接进行评论,因为这是您问题的一部分。
标签: java arrays loops indexing