我想编写一个程序,逐步打印单词直到出现一个完整的句子。例如:我需要编写(输入),输出:为什么我会得到java.lang.StringIndexOutOfBoundsException?
我
我需要
我需要
我需要编写。
这里是我的代码:
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));
}
}
,这就是我得到:
我需要写。
在字符串中找到0。
异常在线程 “主” java.lang.StringIndexOutOfBoundsException:在
split1.Split1.main -1在
java.lang.String.substring(String.java:1937)(:
字符串索引超出范围Split1.java:36)Java结果:1所生成成功
(总时间:0秒)
我不明白为什么numSpace不计空格的发生,也不知道为什么我不得到正确的输出(即使我将numSpace替换为3)。
看起来你指望标签'“\ t'',而不是空格'”“' – Sam