Junior
Opowiedz o klasie String w języku programowania, który znasz.
sobes.tech AI
Odpowiedź od AI
W kontekście Java, String jest niezmienną klasą reprezentującą sekwencję znaków. Obiekty String tworzone są na przykład za pomocą literałów lub operatora new.
Cechy:
- Niezmienność: Po utworzeniu obiektu
String, jego zawartość nie może być zmieniona. Operacje, które wydają się modyfikować łańcuch (np. konkatenacja), w rzeczywistości tworzą nowy łańcuch. Zapewnia to bezpieczeństwo podczas pracy z wątkami i tablicami mieszającymi. - Pula łańcuchów: Dla literałów łańcuchów, JVM Java używa specjalnego obszaru pamięci zwanego pulą łańcuchów. Jeśli łańcuch o takiej samej zawartości już istnieje w puli, JVM używa odwołania do istniejącego obiektu zamiast tworzyć nowy. Optymalizuje to wykorzystanie pamięci.
- Przeciążenie operatora
+: Operator+dla łańcuchów służy do konkatenacji. - Wiele przydatnych metod: Klasa
Stringzapewnia szeroki zakres metod do pracy z łańcuchami: pobieranie długości (.length()), porównywanie (.equals(),.equalsIgnoreCase()), wyszukiwanie podłańcuchów (.contains(),.indexOf()), wyodrębnianie podłańcuchów (.substring()), zamiana znaków (.replace()), konwersja na wielkie/male litery (.toUpperCase(),.toLowerCase()), usuwanie spacji (.trim()) i inne.
Przykłady:
Tworzenie łańcuchów:
// Tworzenie za pomocą literału - umieszczony w puli łańcuchów
String s1 = "Hello";
// Tworzenie za pomocą new - tworzy nowy obiekt poza pulą
String s2 = new String("World");
// Konkatenacja łańcuchów
String s3 = s1 + " " + s2;
Przykład niezmienności:
String oryginalny = "abc";
String zmodyfikowany = oryginalny.concat("def"); // Tworzy nowy łańcuch
// oryginalny nadal jest "abc"
System.out.println(oryginalny); // Wypisze: abc
// zmodyfikowany - nowy łańcuch "abcdef"
System.out.println(zmodyfikowany); // Wypisze: abcdef
Ważne metody:
String tekst = " Example String ";
// Długość łańcucha
int długość = tekst.length(); // 18
// Porównanie łańcuchów
boolean czyRówne = tekst.equals(" Example String "); // true
// Porównanie bez uwzględniania wielkości liter
boolean czyRówneIgnoreCase = tekst.equalsIgnoreCase(" example string "); // true
// Wyszukiwanie podłańcucha
boolean zawiera = tekst.contains("String"); // true
int indeks = tekst.indexOf("String"); // 10
// Wyodrębnianie podłańcucha
String podłańcuch = tekst.substring(10, 16); // String
// Zamiana znaków
String zamieniony = tekst.replace(" ", "-"); // --Example-String--
// Usuwanie spacji z początku i końca
String wyczyszczony = tekst.trim(); // Example String
String jest szeroko używany w Javie do reprezentowania informacji tekstowych i jest podstawową klasą do przetwarzania łańcuchów.