格納されている文字列の並びを逆にする

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

(Last modified: )

StringBuilder.reverseメソッドの使い方

StringBuilder オブジェクトに格納されている文字列の並びを逆にするには、 StringBuilder クラスで用意されている reverse メソッドを使用します。書式は次の通りです。

public StringBuilder reverse()

戻り値:
このオブジェクトへの参照

メソッドを実行すると StringBuilder オブジェクトに格納済みの文字列の並びが逆になります。なおサロゲートペアを使った文字が含まれていた場合、その文字の上位サロゲートペアと下位サロゲートペアの並びは変わりません。

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

StringBuilder sb = new StringBuilder();

sb.append("ABCDEFG");
System.out.println(sb.toString());  // ABCDEFG

sb.reverse();
System.out.println(sb.toString());  // GFEDCBA

文字列を追加したあと文字の並びを反転し順序を逆にしました。

先ほどのサンプルの場合は次のように文字列が追加されたあとで並びが逆になります。

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

サンプルコード

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

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

    sb.append("ABCDEFG");
    System.out.println(sb.toString());

    sb.reverse();
    System.out.println(sb.toString());

    sb.reverse();
    System.out.println(sb.toString());
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample7_1.java

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

java JSample7_1

StringBuilder.reverseメソッドの使い方(2)

StringBuilder オブジェクトを作成し、文字列を追加したあと、文字の並びを逆にしました。

文字列(String)の並びを逆にする

StringBuilder クラスの reverse メソッドを使うことで、文字列(String クラスのインスタンス)の並びを逆にした新しい文字列を作成することができます。。具体的には対象の文字列を引数に StringBuilder クラスのインスタンスを作成したあと並び順を逆にし、そのあとで文字列に変換します。

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

String msg = "Hello, Tarou.";
System.out.println(msg);  // Hello, Tarou.

StringBuilder sb = new StringBuilder(msg);

sb.reverse();
msg = sb.toString();

System.out.println(msg);  // .uoraT ,olleH

文字列から StringBuffer クラスのインスタンスを作成したあと、 reverse メソッドを使って文字の並びを逆にし、そのあとで StringBuffer オブジェクトから文字列を作成して元の変数に代入しています。

-- --

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

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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