Menu
Coddy logo textTech

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

challenge icon

チャレンジ

簡単

modifyText という名前のメソッドを作成し、3つの引数を受け取る:

  1. 修正する String (text)
  2. 検索する String (target)
  3. target を置き換える String (replacement)

メソッドは次のことを行う:

  1. 入力テキストで StringBuffer を作成
  2. target の最初の出現を replacement で置き換え
  3. 末尾に感嘆符を追加
  4. 最終的な文字列を返す

戻り値のメッセージは次のようになる:

  • 入力が 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));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン