Java,检查字符串的子字符串是否为';";“存在”;
我有一个while循环,用来把一个单词分成几个字母。。。它可以工作,但当我尝试检查不存在的子字符串是否为null时,它会抛出异常Java,检查字符串的子字符串是否为';";“存在”;,java,string,exception,substring,Java,String,Exception,Substring,我有一个while循环,用来把一个单词分成几个字母。。。它可以工作,但当我尝试检查不存在的子字符串是否为null时,它会抛出异常 private static void seperateWord(String word) { boolean running = true; int count = 0; while (running) { if (word.substring(count, count + 1).equals("null")) {
private static void seperateWord(String word) {
boolean running = true;
int count = 0;
while (running) {
if (word.substring(count, count + 1).equals("null")) {
running = false;
return;
} else {
letter[count] = word.substring(count, count + 1);
System.out.println(letter[count]);
count++;
}
}
}
它会正确地输出所有字母,直到它到达字符串的末尾,并且没有任何内容可供读取。。。因为它根本不存在。它抛出此异常
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.substring(Unknown Source)
at Class.seperateWord(Class.java:33)
at Class.main(Class.java:13)
第33行是::if(input.substring(count,count+1).equals(“null”)){
第13行就是我调用该方法的地方
我输入的文本是“abc”
提前感谢您的帮助!您试图在只有3个字符的字符串上使子字符串从索引3转到索引4。这就是为什么会出现异常 此外,
input.substring(count,count+1).equals(“null”)
显然永远不会为真。一个1个字符的字符串怎么可能等于一个包含4个字符的字符串“null”
阅读String类的API文档。它有一个
length()
方法返回字符串的长度,您应该使用该方法停止循环。它还有一个charAt()
返回给定索引处的字符的方法。此代码中的输入
、单词
和字母
是什么?这与reall代码示例不太接近。要么您有一个无限长的字符串
,要么您可能希望在到达末尾时停止。我知道输入是我为wh创建的变量ole类我把它改成了word,就像它应该是。。。