Menu
Coddy logo textTech

StringBuffer の入門

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 45/59。

StringBufferはStringBuilderに似ていますが、スレッドセーフ(同時に複数の操作を行っても安全)です。これは、ミュータブル(変更可能)な文字列を作成するために使用されます。

初期テキストを持つ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. 修正対象の文字列 (text)
  2. 検索対象の文字列 (target)
  3. 置換後の文字列 (replacement)

このメソッドは以下の処理を行う必要があります:

  1. 入力されたテキストを使用して StringBuffer を作成する
  2. 最初に見つかった target を replacement で置換する
  3. 末尾に感嘆符を追加する
  4. 最終的な文字列を返す

返されるメッセージは以下の通りです:

  • いずれかの入力が null の場合: "Invalid input" を返す
  • target が見つからない場合:元のテキストに感嘆符を付けて返す
  • 操作が成功した場合:修正されたテキストを返す

自分で試してみよう

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腕試し

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

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