単語が 1 つまたは 3 つのスペースで区切られている文字列があります。3 つのスペースごとに区切られた一連の単語を印刷しようとしています。3 つのスペースに到達し、無限ループに入る最初の単語セットまで取得します。
String sentence = "one one one three three one three one";
int lenght=0;
int start=0;
int threeSpaces = sentence.indexOf(" ");//get index where 1st 3 spaces occur
while (lenght<sentence.length()) {
String word = sentence.substring(start, threeSpaces);//get set of words separated by 3 spaces
System.out.println(word);
start=threeSpaces;//move starting pos
length=threeSpaces;//increase length
threeSpaces= sentence.indexOf(" ", start);//find the next set of 3 spaces from the last at index threeSpaces
}//end while
}
}
出力: 1 つ 1 つ
この時点で、start = 11、length = 11、threeSpaces = 11 です。threespaces が問題です。値は、新しい開始インデックス (11) からの次の 3 つのスペースのセット ' ' のインデックスであると予想していました...任意の入力を歓迎します...
PS のタイトルはあちこちに少しあります。簡単なものは考えられませんでした...