StringBuffer の入門
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 45/59。
StringBuffer は StringBuilder に似ていますが、thread-safe(同時に複数の操作に対して安全)です。mutable(変更可能)な文字列を作成するために使用されます。
初期テキストで StringBuffer を作成します:
StringBuffer sb = new StringBuffer("Hello");append() を使用してさらにテキストを追加:
sb.append(" World");上記のコードを実行した後、sb には次のものが含まれます:
Hello World
insert() と replace() を使用してテキストを変更する:
StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi "); // 先頭に追加
sb.replace(0, 2, "Hey"); // "Hi" を "Hey" に置き換え上記のコードを実行した後、sb には次のものが含まれます:
Hey Java
チャレンジ
簡単modifyText という名前のメソッドを作成し、3つの引数を受け取る:
- 修正する String (
text) - 検索する String (
target) - target を置き換える String (
replacement)
メソッドは次のことを行う:
- 入力テキストで StringBuffer を作成
- target の最初の出現を replacement で置き換え
- 末尾に感嘆符を追加
- 最終的な文字列を返す
戻り値のメッセージは次のようになる:
- 入力が null の場合: return "Invalid input"
- target が見つからない場合: 元のテキストに感嘆符を付けたものを返す
- 成功した場合: 修正されたテキストを返す
チートシート
StringBuffer はスレッドセーフで、可変文字列を作成するために使用されます。
初期テキストで StringBuffer を作成:
StringBuffer sb = new StringBuffer("Hello");append() を使用してテキストを追加:
sb.append(" World");特定の位置にテキストを挿入:
sb.insert(0, "Hi "); // 先頭に追加replace() を使用してテキストを置き換え:
sb.replace(0, 2, "Hey"); // インデックス 0 から 2 までの文字を置き換え自分で試してみよう
import java.util.Scanner;
public class Main {
public static String modifyText(String text, String target, String replacement) {
// ここにコードを書いてください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String target = scanner.nextLine();
String replacement = scanner.nextLine();
if (text.equals("null")) text = null;
if (target.equals("null")) target = null;
if (replacement.equals("null")) replacement = null;
System.out.println(modifyText(text, target, replacement));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。