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
チャレンジ
簡単modifyText という名前の、3つの引数を受け取るメソッドを作成してください:
- 修正対象の文字列 (
text) - 検索対象の文字列 (
target) - 置換後の文字列 (
replacement)
このメソッドは以下の処理を行う必要があります:
- 入力されたテキストを使用して StringBuffer を作成する
- 最初に見つかった target を replacement で置換する
- 末尾に感嘆符を追加する
- 最終的な文字列を返す
返されるメッセージは以下の通りです:
- いずれかの入力が 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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。