Java(charAt)中的字符串索引超出范围错误

快速提问。我在程序中有以下代码:

input = JOptionPane.showInputDialog("Enter any word below")

int i = 0;

for (int j = 0; j <= input.length(); j++)

{

System.out.print(input.charAt(i));

System.out.print(" "); //don't ask about this.

i++;

}

  • 输入是用户输入
  • i 是值为0的整数,如所见

运行代码会产生以下错误:

线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:

java.lang.String.charAt为6 (

program.main(program.java:15))

如果我将charAtint改为0而不是i,则不会产生错误…

该怎么办?问题是什么?

回答:

更换:

j <= input.length()

…与…

j < input.length()

Java String字符索引是从0开始的,因此循环终止条件input的长度应为-1。

当前,当循环在终止前达到倒数第二次迭代时,它input以等于input的长度的索引引用字符,从而抛出StringIndexOutOfBoundsException(a

RuntimeException)。

以上是 Java(charAt)中的字符串索引超出范围错误 的全部内容, 来源链接: utcz.com/qa/416302.html

回到顶部