gpt4 book ai didi

java - 为什么我会收到 java.lang.StringIndexOutOfBoundsException?

转载 作者:行者123 更新时间:2023-12-01 19:13:55 26 4
gpt4 key购买 nike

我想编写一个程序,逐步打印单词,直到出现完整的句子。例如:我需要编写(输入)和输出:

I
I need
I need to
I need to write.

这是我的代码:

public static void main(String[] args) {   
String sentence = "I need to write.";
int len = sentence.length();
int numSpace=0;
System.out.println(sentence);
System.out.println(len);

for(int k=0; k<len; k++){
if(sentence.charAt(k)!='\t')
continue;
numSpace++;
}

System.out.println("Found "+numSpace +"\t in the string.");

int n=1;
for (int m = 1; m <=3; m++) {
n=sentence.indexOf('\t',n-1);
System.out.println("ligne"+m+sentence.substring(0, n));
}
}

这就是我得到的:

I need to write.
16
Found 0 in the string.
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: -1 at
java.lang.String.substring(String.java:1937) at
split1.Split1.main(Split1.java:36) Java Result: 1 BUILD SUCCESSFUL
(total time: 0 seconds)

我不明白为什么 numSpace 不计算空格的出现次数,也不明白为什么我没有得到正确的输出(即使我将 numSpace 替换为 3)。

最佳答案

  1. 您没有 \t 字符,因此 indexOf(..) 返回 -1
  2. 您尝试使用 0 到 -1 之间的子字符串 - 失败

解决方案是检查:

if (n > -1) {
System.out.prinltn(...);
}

关于java - 为什么我会收到 java.lang.StringIndexOutOfBoundsException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com