java StringBuilderで範囲を指定して文字列を抽出する

java StringBuilderで範囲を指定して文字列を抽出する

javaで、StringBuilderで範囲を指定して文字列を抽出する手順を記述してます。

環境

  • OS windows11 home
  • java 17.0.2

手順

StringBuilderで範囲を指定して文字列を抽出するには、「substring」で可能です。

StringBuilder s = new StringBuilder();

s.substring(開始位置,終了位置);
※終了位置の値を含みません

実際に使用してみます。

public class App {
  public static void main(String[] args) throws Exception {

    StringBuilder s = new StringBuilder();

    s.append("あいうえお");

    System.out.println(s.substring(0,2)); // あい
    System.out.println(s.substring(1,2)); // い

  }

}

取得されていることが確認できます。

範囲を超える

範囲を超えて指定すると「StringIndexOutOfBoundsException」が発生します。

public class App {
  public static void main(String[] args) throws Exception {

    StringBuilder s = new StringBuilder();

    s.append("あいうえお");

    System.out.println(s.substring(0,7));
    // Exception in thread "main" java.lang.StringIndexOutOfBoundsException: start 0, end 7, length 5
    //     at java.base/java.lang.AbstractStringBuilder.checkRangeSIOOBE(AbstractStringBuilder.java:1810)
    //     at java.base/java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:1070) 
    //     at java.base/java.lang.StringBuilder.substring(StringBuilder.java:91)
    //     at App.main(App.java:8)

  }

}