Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでStringIndexOutOfBoundsException(チェックされていない)を処理する方法は?


StringIndexOutOfBoundsException 未チェックの1つです 例外 Javaで。文字列は一種の文字の集合です。 文字列 オブジェクト 範囲があります [0、文字列の長さ] 。誰かが実際の文字列値の範囲を超える制限のある文字にアクセスしようとすると、この例外が発生します。

例1

public class StringDemo {
   public static void main(String[] args) {
      String str = "Welcome to Tutorials Point.";
      System.out.println("Length of the String is: " + str.length());
      System.out.println("Length of the substring is: " + str.substring(28));
   }
}

出力

Length of the String is: 27
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
       at java.lang.String.substring(String.java:1931)
       at StringDemo.main(StringDemo.java:6)


StringIndexOutOfBoundsExceptionの処理方法

  • String.length()を使用して文字列の範囲を確認できます メソッドを実行し、それに応じてその文字にアクセスします。
  • トライアンドキャッチブロックを使用できます StringIndexOutOfBoundsExceptionをスローする可能性のあるコードスニペットの周囲 。

例2

public class StringIndexOutOfBoundsExceptionTest {
   public static void main(String[] args) {
      String str = "Welcome to Tutorials Point.";
      try {
        // StringIndexOutOfBoundsException will be thrown because str only has a length of 27.
str.charAt(28);
         System.out.println("String Index is valid");
      } catch (StringIndexOutOfBoundsException e) {
         System.out.println("String Index is out of bounds");
      }
   }
}

出力

String Index is out of bounds

  1. JavaでGsonを使用してJSONのプロパティの名前を変更するにはどうすればよいですか?

    Gson@SerializedNameアノテーション 指定された名前の値をフィールド名としてJSONにシリアル化できます。このアノテーションは、 FieldNamingPolicyをオーバーライドできます Gsonに設定されている可能性のあるデフォルトのフィールド命名ポリシーを含む 実例。 GsonBuilder を使用して、別の命名ポリシーを設定できます クラス。 構文 @Retention(value=RUNTIME) @Target(value={FIELD,METHOD}) public @interface SerializedName 例 import com.google.g

  2. JavaのStringIndexOutOfBoundsExceptionとは何ですか?

    文字列は、Javaで文字のシーケンスを格納するために使用され、オブジェクトとして扱われます。 java.langパッケージのStringクラスは、文字列を表します。 文字列は、(他のオブジェクトのように)新しいキーワードを使用するか、(他のプリミティブデータ型のように)リテラルに値を割り当てることによって作成できます。 String stringObject = new String("Hello how are you"); String stringLiteral = "Welcome to Tutorialspoint"; 文字列には文字の配列