Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

Java辞典

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

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

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()ビルダー内の現在の文字数を返します。
サンプルコード
// 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』と出力されます。
概要

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

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

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

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