Podstawy StringBuilder
Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 44 z 59.
StringBuilder służy do tworzenia mutowalnych (modyfikowalnych) ciągów znaków. Jest wydajniejszy niż zwykłe łączenie ciągów typu String, gdy musisz wielokrotnie je modyfikować.
Utwórz StringBuilder z tekstem początkowym:
StringBuilder sb = new StringBuilder("Hello");Dodaj więcej tekstu za pomocą append():
sb.append(" World");Po wykonaniu powyższego kodu sb zawiera:
Hello World
Użyjmy insert(), aby dodać tekst w określonym miejscu:
StringBuilder sb = new StringBuilder("Java");
sb.append(" is"); // dodaje na końcu
sb.insert(0, "Hey "); // dodaje na pozycji 0 (początek)Po wykonaniu powyższego kodu sb zawiera:
Hey Java is
Konwertowanie StringBuilder na String:
Gdy chcesz zwrócić lub zapisać wynik jako String, użyj toString():
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
String result = sb.toString(); // Konwertuje na String
System.out.println(result); // Wypisuje: Hello WorldDlaczego używać toString()? Metody zwracające typ String nie mogą zwracać bezpośrednio obiektu StringBuilder — najpierw musisz go przekonwertować za pomocą toString().
Wyzwanie
ŁatwyUtwórz metodę o nazwie buildPhrase, która przyjmuje trzy argumenty:
- String (
start) określający początek frazy - String (
middle) określający środkową część - String (
end) określający zakończenie
Metoda powinna:
- Utworzyć StringBuilder z ciągiem start
- Dodać spację i ciąg middle
- Dodać spację i ciąg end
- Dodać wykrzyknik na końcu
- Zwrócić końcowy ciąg
Zwracane komunikaty powinny być następujące:
- Jeśli którekolwiek wejście ma wartość null: zwrócić "Invalid input"
- W przypadku powodzenia: zwrócić utworzoną frazę
Spróbuj swoich sił
import java.util.Scanner;
public class Main {
public static String buildPhrase(String start, String middle, String end) {
// Wpisz tutaj swój kod
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String start = scanner.nextLine();
String middle = scanner.nextLine();
String end = scanner.nextLine();
if (start.equals("null")) start = null;
if (middle.equals("null")) middle = null;
if (end.equals("null")) end = null;
System.out.println(buildPhrase(start, middle, end));
}
}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
1Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DDodawanie i odejmowanie macierzyTablice postrzępioneTablice 3D i większeTypowe wzorce dla tablic 2DPodsumowanie — wszystko o tablicach2HashMap część 1
Czym jest HashMap?Deklarowanie HashMapDostęp do wartościSprawdzanie, czy klucz istniejeModyfikowanie słownikówPodsumowanie — HashMap5HashSet — część 2
Matematyka — suma zbiorów HashSetMatematyka — część wspólna zbiorów HashSetMatematyka — różnica zbiorówMatematyka — różnica symetrycznaPodzbiory i nadzbioryIterowanie po zbiorach8Zaawansowane operacje na ciągach znaków
Podstawy StringBuilderWprowadzenie do StringBufferPodstawy wyrażeń regularnychDopasowywanie wzorców za pomocą RegexTokenizer ciągów znakówZaawansowane formatowanie ciągów znaków3HashMap — część 2
Metody HashMapIterowanie za pomocą keySet()Iterowanie za pomocą entrySet()Zagnieżdżona HashMapPowtórka — zarządzanie magazynemPowtórka — operacje na HashMap6Zaawansowany przepływ sterowania
Instrukcje etykietująceWyrażenie switchDopasowywanie wzorcówKlauzule ochronnePowtórzenie — przepływ sterowania9Projekt — licznik unikalnych słów
Wprowadzanie i przechowywanie tekstuPrzetwarzanie słówPoćwicz samodzielnie: Kompilator Java online