言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Java辞典

  1. トップページ
  2. Java辞典
  3. ビルダー.reverse() / replace() / toString()

ビルダー.reverse() / replace() / toString()

対応: Java 5(2004)

StringBuilder の文字列を反転させたり、指定範囲を別の文字列に置換したり、最終的に String に変換したりするメソッドです。可変文字列の操作を完結させる仕上げ処理に使われます。

構文

// 文字列を反転します。
ビルダー.reverse();

// 指定した範囲を別の文字列で置き換えます。
ビルダー.replace(int start, int end, String str);

// 指定した範囲の部分文字列を取得します。
ビルダー.substring(int start);
ビルダー.substring(int start, int end);

// StringBuilder を String に変換します。
ビルダー.toString();

// 現在の文字数を返します。
ビルダー.length();

メソッド一覧

メソッド概要
reverse()ビルダー内の文字列を逆順にして自身を返します。サロゲートペアは正しく逆順になります。
replace(int start, int end, String str)start から end の直前までの文字を str に置き換えます。自身を返します。
substring(int start)start から末尾までの部分文字列を String として返します。ビルダー自体は変更されません。
substring(int start, int end)start から end の直前までの部分文字列を String として返します。
toString()ビルダーの内容を String に変換して返します。最終的に文字列として取り出す際に必ず呼び出します。
length()ビルダー内の現在の文字数を返します。

サンプルコード

sample_StringBuilderReverse.java
class StringBuilderReverse {
    public static void main(String[] args) {
        // reverse() で文字列を反転します。
        StringBuilder sb = new StringBuilder("Hello");
        sb.reverse();
        System.out.println(sb); // 『olleH』と出力されます。

        // 回文かどうかを判定します。
        String word = "racecar";
        String reversed = new StringBuilder(word).reverse().toString();
        System.out.println(word.equals(reversed)); // 『true』と出力されます。

        // replace() で指定範囲を置換します。
        StringBuilder sb2 = new StringBuilder("Java is fun!");
        sb2.replace(8, 11, "great"); // 『fun』を『great』に置き換えます。
        System.out.println(sb2); // 『Java is great!』と出力されます。

        // substring() で部分文字列を取得します(ビルダーは変更されません)。
        StringBuilder sb3 = new StringBuilder("Hello, Java!");
        System.out.println(sb3.substring(7));    // 『Java!』と出力されます。
        System.out.println(sb3.substring(7, 11)); // 『Java』と出力されます。

        // toString() で最終的に String に変換します。
        StringBuilder sb4 = new StringBuilder();
        sb4.append("Result: ").append(42);
        String result = sb4.toString();
        System.out.println(result); // 『Result: 42』と出力されます。

        // length() で現在の文字数を確認します。
        System.out.println(sb4.length()); // 『10』と出力されます。
    }
}
javac StringBuilderReverse.java
java StringBuilderReverse
olleH
true
Java is great!
Java!
Java
Result: 42
10

概要

『reverse()』はアルゴリズム問題や回文チェックなど、文字列を逆順にする処理を1行で記述できる便利なメソッドです。自身を返すのでメソッドチェーンが使えます。

『replace()』は String の『replaceAll()』とは異なり、インデックス範囲を指定して置換する点が特徴です。正規表現は使用しません。範囲指定が文字列の長さを超えると StringIndexOutOfBoundsException がスローされるため、事前に『length()』で長さを確認してください。

追加・挿入・削除には『append() / insert() / delete()』、文字列の全体的な操作には String の『replace() / replaceAll()』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。