Java 程序正在运行,但出现错误,字符串索引超出范围:-1
这是我在这里的第一篇帖子,顺便说一句,我的老师给全班同学布置了一个编程作业,我们需要做一个回文程序,我能做,但我想消除错误,你能解释一下为什么会有错误,我如何消除错误吗Java 程序正在运行,但出现错误,字符串索引超出范围:-1,java,Java,这是我在这里的第一篇帖子,顺便说一句,我的老师给全班同学布置了一个编程作业,我们需要做一个回文程序,我能做,但我想消除错误,你能解释一下为什么会有错误,我如何消除错误吗 import java.io.*; public class AssignmentInCopro {public static void main (String [] args) throws IOException {BufferedReader x = new BufferedReader(new Input
import java.io.*;
public class AssignmentInCopro
{public static void main (String [] args) throws IOException
{BufferedReader x = new BufferedReader(new InputStreamReader(System.in));
String word = "";
System.out.print("Please enter the word you want to see in reverse: ");
word = x.readLine();
int wordLength = word.length();
while (wordLength >=0)
{
char letter = word.charAt(wordLength - 1);
System.out.print(letter);
wordLength--;
}
}
}
当您的循环包含索引0时出错。如果
字长
为零,那么您将查找字符(-1)
,并得到异常:
将代码更改为:
while (wordLength >0)
错误消失了
while (wordLength >=0)
当wordLength=0时,这会导致错误,然后char letter=word.charAt(wordLength-1)
实际上是charletter=word.charAt(0-1)代码>
这应该是一个条件,或者你可以这样写你的循环-
int wordLength = word.length() - 1;
while (wordLength >=0){
System.out.print(word.charAt(wordLength--));
}
看看当wordlength实际上等于0//(wordlength>=0)时会发生什么
您试图在-1//word.charAt(wordLength-1)处访问char
使用while(wordLength>0)或while(wordLength>=1)更改它
祝您愉快将条件更改为wordLength>0
(不带=)。
int wordLength = word.length() - 1;
while (wordLength >=0){
System.out.print(word.charAt(wordLength--));
}