JavaのStringIndexOutOfBoundsExceptionとは何ですか?
文字列は、Javaで文字のシーケンスを格納するために使用され、オブジェクトとして扱われます。 java.langパッケージのStringクラスは、文字列を表します。
文字列は、(他のオブジェクトのように)新しいキーワードを使用するか、(他のプリミティブデータ型のように)リテラルに値を割り当てることによって作成できます。
String stringObject = new String("Hello how are you"); String stringLiteral = "Welcome to Tutorialspoint";
文字列には文字の配列が格納されるため、配列と同様に、各文字の位置はインデックス(0から開始)で表されます。たとえば、文字列を-
として作成した場合String str = "Hello";
その中の文字は-
として配置されます
長さより大きいインデックスで文字列の文字にアクセスしようとすると、 StringIndexOutOfBoundsException スローされます。
例
文字列 Javaのクラスは、文字列を操作するためのさまざまなメソッドを提供します。 charAt()を使用して、特定のインデックスで文字を見つけることができます このクラスのメソッド。
このメソッドは、文字列のインデックスを指定する整数値を受け入れ、指定されたインデックスの文字列内の文字を返します。
次のJavaプログラムでは、長さ17の文字列を作成し、インデックス40で要素を出力しようとしています。
public class Test { public static void main(String[] args) { String str = "Hello how are you"; System.out.println("Length of the String: "+str.length()); for(int i=0; i<str.length(); i++) { System.out.println(str.charAt(i)); } //Accessing element at greater than the length of the String System.out.println(str.charAt(40)); } }
出力
実行時例外-
長さを超えるインデックスで要素にアクセスしているため、StringIndexOutOfBoundsExceptionがスローされます。
Length of the String: 17 H e l l o h o w a r e y o u Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 40 at java.base/java.lang.StringLatin1.charAt(Unknown Source) at java.base/java.lang.String.charAt(Unknown Source) at Test.main(Test.java:9)
-
JavaでのStringintern()メソッドの役割は何ですか?
文字列は、文字のシーケンスを格納するJavaのクラスであり、 java.langに属します。 パッケージ。 Stringオブジェクトを作成すると、それらを変更することはできません(不変)。 ストレージ すべてのStringオブジェクトは、String Constant poolと呼ばれるヒープ領域の別のメモリ位置に格納されます。 。 文字列値を定義するときはいつでも、JVMは文字列定数プールに指定された値で文字列オブジェクトを作成します。したがって、上記のプログラムを実行すると、2つの文字列値が文字列定数プールに作成されます。 intern()メソッド このメソッドは、一意
-
JavaでStringIndexOutOfBoundsException(チェックされていない)を処理する方法は?
StringIndexOutOfBoundsException 未チェックの1つです 例外 Javaで。文字列は一種の文字の集合です。 文字列 オブジェクト 範囲があります [0、文字列の長さ] 。誰かが実際の文字列値の範囲を超える制限のある文字にアクセスしようとすると、この例外が発生します。 例1 public class StringDemo { public static void main(String[] args) { String str = "Welcome to Tutorials Point