import java.util.Scanner;
public class vrzbi {
public static void main(String[]args){
System.out.println("write a sentence");
Scanner input = new Scanner(System.in);
String sentence = input.nextLine();
int j = 0;
for (int i = 1; i < sentence.length(); i++) {
if ( sentence.charAt(i-1) == ' ' && sentence.charAt(i) == 'b'){
j = i;
while (sentence.charAt(j) != ' ' && j<sentence.length()){
System.out.print(sentence.charAt(j));
j++;
}
System.out.println(" ");
}
}
}
}
正确的单词出现了:前兄弟鲍勃有一个男婴输出鲍勃男婴。但在那之后,我在while行得到一个溢出异常错误。
问题是j
可以取等于sentence.length()
的值,因此在while行中,您应该首先检查j<sentence.length()
条件,然后检查sentence.charAt(j) != ' '
,因为while条件是从左到右计算的。
更改您的while
while (sentence.charAt(j) != ' ' && j<sentence.length())
至
while (j<sentence.length() && sentence.charAt(j) != ' ')