Menu
CoddyTech

Wprowadzenie do StringBuffer

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

StringBuffer jest podobny do StringBuildera, ale jest bezpieczny wątkowo (bezpieczny przy wielu operacjach wykonywanych jednocześnie). Służy do tworzenia mutowalnych (modyfikowalnych) 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" ciągiem "Hey"

Po wykonaniu powyższego kodu sb zawiera:

Hey Java

Aby znaleźć miejsce, w którym zaczyna się dany tekst, użyj indexOf(). Zwraca pozycję pierwszego dopasowania albo -1, jeśli tekstu tam nie ma:

StringBuffer sb = new StringBuffer("Hey Java");
int pos = sb.indexOf("Java");   // 4
int none = sb.indexOf("Python"); // -1
challenge icon

Wyzwanie

Łatwy

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

  1. String (text) do zmodyfikowania
  2. String (target) do znalezienia
  3. String (replacement) do zastąpienia target

Metoda powinna:

  1. Utworzyć StringBuffer z tekstem wejściowym
  2. Zastąpić pierwsze wystąpienie target wartością 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 którekolwiek wejście ma wartość null: zwrócić "Invalid input"
  • Jeśli target nie zostanie znaleziony: zwrócić oryginalny tekst z wykrzyknikiem
  • W przypadku pomyślnego działania: 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