Menu
Coddy logo textTech

Wprowadzenie do StringBuffer

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 45 z 59.

StringBuffer jest podobny do StringBuilder, ale jest bezpieczny wątkowo (bezpieczny przy wykonywaniu wielu operacji jednocześnie). Służy do tworzenia modyfikowalnych (możliwych do zmiany) ciągów znaków.

Utwórz StringBuffer z tekstem początkowym:

StringBuffer sb = new StringBuffer("Hello");

Dodaj więcej tekstu za pomocą append():

sb.append(" World");

Po wykonaniu powyższego kodu sb zawiera:

Hello World

Modyfikuj tekst za pomocą insert() i replace():

StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi ");       // dodaje na początku
sb.replace(0, 2, "Hey");   // zastępuje "Hi" przez "Hey"

Po wykonaniu powyższego kodu sb zawiera:

Hey Java

challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie modifyText, która przyjmuje trzy argumenty:

  1. Ciąg znaków (text) do zmodyfikowania
  2. Ciąg znaków (target) do znalezienia
  3. Ciąg znaków (replacement), którym należy zastąpić target

Metoda powinna:

  1. Utworzyć obiekt StringBuffer z tekstem wejściowym
  2. Zastąpić pierwsze wystąpienie target ciągiem replacement
  3. Dodać wykrzyknik na końcu
  4. Zwrócić końcowy ciąg znaków

Zwracane komunikaty powinny być następujące:

  • Jeśli dowolne dane wejściowe mają wartość null: zwrócić "Invalid input"
  • Jeśli target nie zostanie znaleziony: zwrócić oryginalny tekst z wykrzyknikiem
  • W przypadku powodzenia: zwrócić zmodyfikowany tekst

Spróbuj swoich sił

import java.util.Scanner;

public class Main {
    public static String modifyText(String text, String target, String replacement) {
        // Wpisz tutaj swój kod
    }
    
    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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online