ホームページ >Java >&#&チュートリアル >Java の StringIndexOutOfBoundsException - 範囲外の文字列に対する解決策
Java では、StringIndexOutOfBoundsException (範囲外の文字列) が一般的なエラーです。このエラーは通常、文字列を処理するときに発生し、大量のテキストを処理するプログラムがこの状況に巻き込まれる可能性があります。この記事ではJavaにおけるStringIndexOutOfBoundsExceptionの状況と解決策を紹介します。
StringIndexOutOfBoundsException とは何ですか?
StringIndexOutOfBoundsException は、範囲外の文字列とも呼ばれ、Java の文字列操作を使用する場合、文字列の範囲を超えてアクセスすると、この実行時例外が発生することがあります。この例外タイプは RuntimeException クラスから継承します。
一般的な状況
string charAt() メソッドを使用する場合
charAt() メソッドを使用して文字列の文字を取得する場合、その Number を次のように指定できます。特定のキャラクターを入手します。この数値が文字列の長さを超える場合、StringIndexOutOfBoundsException が発生します。
例:
String str = "Java is a good programming language."; char c = str.charAt(50);
charAt() メソッドを通じて取得した文字が文字列の長さを超える場合、範囲外の例外がスローされます。
string substring() メソッドを使用する場合
substring() メソッドは文字列内の単語を抽出でき、開始番号と終了番号を指定することで部分文字列の長さを制御できます。開始位置と終了位置が文字列の範囲内にない場合は、例外がスローされます。
例:
String str = "Java is a good programming language."; String subStr = str.substring(50, 60);
この場合、数値が文字列の長さを超えると、範囲外の例外がスローされます。
文字列配列を使用する場合
文字列配列を使用する場合も StringIndexOutOfBoundsException が発生しやすくなります。配列の長さを超える要素をクエリすると、例外がスローされます。
例:
String[] arr = new String[]{"Java", "Python", "C++", "Ruby"}; String str = arr[10];
上記の状況では、参照する要素が配列の範囲内にない場合、範囲外例外が発生します。
解決策
次の方法で StringIndexOutOfBoundsException を回避できます。
charAt() メソッドを使用する場合は、指定した数値が文字列の範囲内であることを確認してください。
String str = "Java is a good programming language."; if (str.length() > 50) { char c = str.charAt(50); }
substring() メソッドを使用する場合は、開始位置と終了位置が文字列の範囲内にあることを確認してください。
String str = "Java is a good programming language."; if (str.length() > 50 && str.length() > 60) { String subStr = str.substring(50, 60); }
文字列配列を使用する場合は、クエリされた要素が配列内に存在することを確認してください。
String[] arr = new String[]{"Java", "Python", "C++", "Ruby"}; if (arr.length > 10) { String str = arr[10]; }
概要
StringIndexOutOfBoundsException は、文字列操作を処理する際の一般的な例外です。文字列メソッドを使用する場合は注意が必要です。例外が発生した場合は、文字列メソッドに渡されたパラメータをチェックして、パラメータが文字列の長さを超えていないことを確認する必要があります。
以上がJava の StringIndexOutOfBoundsException - 範囲外の文字列に対する解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。