格納されている文字列の長さを取得する

StringBuilder クラスの length メソッドを使用すると、 StringBuilder オブジェクトに格納されている文字列の長さ(文字数)を取得することができます。ここでは Java の StringBuilder クラスで格納されている文字列の長さを取得する方法について解説します。

(Last modified: )

StringBuilder.lengthメソッドの使い方

StringBuilder オブジェクトに現在格納されている文字の数を取得するには、 StringBuilder クラスで用意されている length メソッドを使用します。書式は次の通りです。

public int length()

戻り値:
このオブジェクトによって現在表される文字シーケンスの長さ

メソッドを実行すると、格納されている文字列の文字数を戻り値として返します。なお返されるのは StringBuilder オブジェクトに用意されている格納用の領域の長さではなく、実際に格納されている文字列の長さです。

次のサンプルを見てください。

StringBuilder sb = new StringBuilder();

System.out.println(sb.length());  // 0

sb.append("Hello");
System.out.println(sb.length());  // 5

StringBuilder オブジェクトに格納されている文字数を取得しました。作成した直後は 0 ですが、 "Hello" を格納すると文字数は 5 となります。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample6-1.java という名前で保存します。

class JSample6_1{
  public static void main(String[] args){
    StringBuilder sb = new StringBuilder();

    System.out.println(sb.length());

    sb.append("Hello");
    System.out.println(sb.toString());
    System.out.println(sb.length());

    sb.append("Java");
    System.out.println(sb.toString());
    System.out.println(sb.length());
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample6_1.java

その後で、次のように実行してください。

java JSample6_1

StringBuilder.lengthメソッドの使い方(1)

StringBuilder オブジェクトを作成し、文字列を追加したあとで格納されている文字数を取得しました。

StringBuilderオブジェクトの現在の容量を取得する

引数を指定しないコンストラクタを使用して StringBuilder クラスのインスタンスを作成すると、デフォルトでは 16 文字分を格納できる容量が用意されます。文字列などを追加して容量が足りなくなると自動的に拡張されるため容量について気にされる必要はありませんが、もし現在の容量を確認したい場合には StringBuilder クラスで用意されている capacity メソッドを使います。書式は次のとおりです。

public int capacity()

戻り値:
現在の容量

メソッドを実行すると、 StringBuilder オブジェクトの現在の容量を戻り値として返します。

次のサンプルを見てください。

StringBuilder sb = new StringBuilder();
System.out.println(sb.capacity());  // 16

sb.append("Hello, Tarou.");
System.out.println(sb.capacity());  // 16

sb.append("Good Morning");
System.out.println(sb.capacity());  // 34

デフォルトの容量は 16 となっており、文字列が格納されていき 16 文字を超えると容量が自動的に拡張されています。なお最終的に 25 文字が格納されていますが、容量はピッタリの分だけ拡張されるわけではなくある程度まとめて追加されるようです。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample6-2.java という名前で保存します。

class JSample6_2{
  public static void main(String[] args){
    StringBuilder sb = new StringBuilder();

    System.out.println(sb.toString());
    System.out.println("length:" + sb.length());
    System.out.println("capacity:" + sb.capacity());

    System.out.println("-- --");

    sb.append("Hello, Tarou.");
    System.out.println(sb.toString());
    System.out.println("length:" + sb.length());
    System.out.println("capacity:" + sb.capacity());

    System.out.println("-- --");

    sb.append("Good Morning");
    System.out.println(sb.toString());
    System.out.println("length:" + sb.length());
    System.out.println("capacity:" + sb.capacity());
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample6_2.java

その後で、次のように実行してください。

java JSample6_2

StringBuilderオブジェクトの現在の容量を取得する(1)

StringBuilder オブジェクトを作成し、文字列を追加したあとで格納されている文字数と現在の容量を取得しました。

-- --

Java の StringBuilder クラスで格納されている文字列の長さを取得する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。