私はクラスのためにこの小さなハードウェアの問題をやっています。私のプログラムのポイントは、ユーザー入力からフレーズ内のすべての空白文字をカウントすることです。for ループに到達するまで、すべて問題ありません。ループにブレーク ポイントを設定すると、罰金が実行され、空白文字がカウントされます。しかし、ループが終了すると、プログラムがクラッシュし、次のエラーが表示されます。
スレッド「メイン」の例外 java.lang.StringIndexOutOfBoundsException: 文字列インデックスが範囲外です: 5
誰かが私を正しい方向に向けることができるかどうかはよくわかりません。
import java.util.Scanner;
public class Cray {
public static void main(String[] args){
String phrase; // a string of characters
int countBlank; // the number of blanks (spaces) in the phrase
int length; // the length of the phrase
char ch; // an individual character in the string
Scanner scan = new Scanner(System.in);
// Print a program header
System.out.println ();
System.out.println ("Character Counter");
System.out.println ();
// Read in a string and find its length
System.out.print ("Enter a sentence or phrase: ");
phrase = scan.nextLine();
length = phrase.length();
// Initialize counts
countBlank = 0;
// a for loop to go through the string character by character
// and count the blank spaces
for(int i =0; i<=length; i++ ){
if(phrase.charAt(i)==' '){
countBlank++;
}
}
// Print the results
System.out.println ();
System.out.println ("Number of blank spaces: " + countBlank);
System.out.println ();
}
}