Konstruktor ciągów w Javie reprezentuje zmienną sekwencję znaków. Ponieważ klasa String w Javie tworzy niezmienną sekwencję znaków, klasa StringBuilder stanowi alternatywę dla klasy String, ponieważ tworzy zmienną sekwencję znaków. Funkcja StringBuilder jest bardzo podobna do klasy StringBuffer, ponieważ obie stanowią alternatywę dla klasy String, tworząc zmienną sekwencję znaków. Jednakże klasa StringBuilder różni się od klasy StringBuffer synchronizacją. Klasa StringBuilder nie zapewnia żadnej gwarancji synchronizacji, podczas gdy klasa StringBuffer tak. Dlatego ta klasa została zaprojektowana do użytku jako zamiennik StringBuffer w miejscach, gdzie StringBuffer był używany przez pojedynczy wątek (co zwykle ma miejsce). Tam, gdzie to możliwe, zaleca się używanie tej klasy zamiast StringBuffer, ponieważ w większości implementacji będzie ona szybsza. Instancje StringBuilder nie są bezpieczne do użycia przez wiele wątków. Jeśli taka synchronizacja jest wymagana, zaleca się użycie StringBuffer. Konstruktor ciągów nie jest bezpieczny dla wątków i ma wysoką wydajność w porównaniu z buforem ciągów.
Hierarchia klas wygląda następująco:
zmień nazwę folderu Linux
java.lang.Object ↳ java.lang ↳ Class StringBuilder>
Składnia:
public final class StringBuilder extends Object implements Serializable, CharSequence>
Konstruktory w klasie Java StringBuilder
- StringBuilder(): Konstruuje konstruktor ciągów znaków bez znaków i o początkowej pojemności 16 znaków. StringBuilder(int pojemność): Konstruuje konstruktor ciągów znaków bez znaków i o początkowej pojemności określonej przez argument pojemności. StringBuilder(CharSequence seq): konstruuje konstruktora ciągów, który zawiera te same znaki, co określony CharSequence. StringBuilder(String str): Konstruuje konstruktor ciągów zainicjowany do zawartości określonego ciągu.
Poniżej znajduje się przykładowy program ilustrujący StringBuilder w Javie.
Jawa
// Java Code to illustrate StringBuilder> import> java.util.*;> import> java.util.concurrent.LinkedBlockingQueue;> public> class> GFG1 {> >public> static> void> main(String[] argv)>throws> Exception> >{> >// Create a StringBuilder object> >// using StringBuilder() constructor> >StringBuilder str =>new> StringBuilder();> >str.append(>'GFG'>);> >// print string> >System.out.println(>'String = '> + str.toString());> >// create a StringBuilder object> >// using StringBuilder(CharSequence) constructor> >StringBuilder str1> >=>new> StringBuilder(>'AAAABBBCCCC'>);> >// print string> >System.out.println(>'String1 = '> + str1.toString());> >// create a StringBuilder object> >// using StringBuilder(capacity) constructor> >StringBuilder str2 =>new> StringBuilder(>10>);> >// print string> >System.out.println(>'String2 capacity = '> >+ str2.capacity());> >// create a StringBuilder object> >// using StringBuilder(String) constructor> >StringBuilder str3> >=>new> StringBuilder(str1.toString());> >// print string> >System.out.println(>'String3 = '> + str3.toString());> >}> }> |
policz różne sql
>
>Wyjście
String = GFG String1 = AAAABBBCCCC String2 capacity = 10 String3 = AAAABBBCCCC>
Metody w Java StringBuilder
Dołącz StringBuilder (X x) : Ta metoda dołącza ciąg reprezentujący argument typu X do sekwencji.
- StringBuilder appendCodePoint(int codePoint) : Ta metoda dołącza ciąg reprezentujący argument codePoint do tej sekwencji.
- całkowita pojemność() : Ta metoda zwraca bieżącą pojemność.
- char charAt(int indeks) : Ta metoda zwraca wartość char w tej sekwencji o określonym indeksie. IntStream chars() : Ta metoda zwraca strumień typu int o zerowym przedłużeniu wartości znaków z tej sekwencji.
- int codePointAt(int indeks) : Ta metoda zwraca znak (punkt kodowy Unicode) o określonym indeksie.
- int codePointBefore(int indeks) : Ta metoda zwraca znak (punkt kodowy Unicode) przed określonym indeksem.
- int codePointCount(int BeginIndex, int endIndex) : Ta metoda zwraca liczbę punktów kodowych Unicode w określonym zakresie tekstowym tej sekwencji. IntStream codePoints() : Ta metoda zwraca strumień wartości punktów kodowych z tej sekwencji.
- Usuń StringBuilder (int początek, int koniec) : Ta metoda usuwa znaki z podciągu tej sekwencji. StringBuilder DeleteCharAt(int indeks): Ta metoda usuwa znak z określonej pozycji w tej sekwencji.
- void zapewnij pojemność (int minimalna pojemność) : Ta metoda zapewnia, że wydajność jest co najmniej równa określonemu minimum.
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : Znaki tej metody są kopiowane z tej sekwencji do docelowej tablicy znaków dst.
- int indeks() : Ta metoda zwraca indeks w tym ciągu pierwszego wystąpienia określonego podciągu. StringBuilder wstaw(int offset, boolean b): Ta metoda wstawia ciąg reprezentujący alternatywny argument boolowski do tej sekwencji. StringBuilder wstaw(): Ta metoda wstawia ciąg znaków reprezentujący argument char do tej sekwencji.
- int lastIndexOf() : Ta metoda zwraca indeks w tym ciągu ostatniego wystąpienia określonego podciągu.
- długość całkowita() : Ta metoda zwraca długość (liczbę znaków). int offsetByCodePoints(int indeks, int codePointOffset): Ta metoda zwraca indeks w tej sekwencji, który jest przesunięty w stosunku do podanego indeksu o punkty kodowe codePointOffset.
- StringBuilder zamień (int początek, int koniec, ciąg znaków) : Ta metoda zastępuje znaki w podciągu tej sekwencji znakami z określonego ciągu.
- Odwrotna funkcja StringBuilder() : Ta metoda powoduje zastąpienie tej sekwencji znaków odwrotnością sekwencji.
- void setCharAt(int indeks, char ch) : W tej metodzie znak o określonym indeksie jest ustawiany na ch.
- void setLength (int nowa długość) : Ta metoda ustawia długość sekwencji znaków.
- CharSequence subSequence (int początek, int koniec) : Ta metoda zwraca nową sekwencję znaków, która jest podciągiem tej sekwencji.
- Podciąg ciągu() : Ta metoda zwraca nowy ciąg znaków, który zawiera podciąg znaków aktualnie zawartych w tej sekwencji znaków.
- Ciąg doString() : Ta metoda zwraca ciąg znaków reprezentujący dane w tej sekwencji.
- puste przycięcieToSize() : Ta metoda próbuje zmniejszyć ilość pamięci używanej dla sekwencji znaków.
Przykład:
Jawa
jquery to kliknięcie
// Java code to illustrate> // methods of StringBuilder> import> java.util.*;> import> java.util.concurrent.LinkedBlockingQueue;> public> class> GFG1 {> >public> static> void> main(String[] argv)> >throws> Exception> >{> >// create a StringBuilder object> >// with a String pass as parameter> >StringBuilder str> >=>new> StringBuilder(>'AAAABBBCCCC'>);> >// print string> >System.out.println(>'String = '> >+ str.toString());> >// reverse the string> >StringBuilder reverseStr = str.reverse();> >// print string> >System.out.println(>'Reverse String = '> >+ reverseStr.toString());> >// Append ', '(44) to the String> >str.appendCodePoint(>44>);> >// Print the modified String> >System.out.println(>'Modified StringBuilder = '> >+ str);> >// get capacity> >int> capacity = str.capacity();> >// print the result> >System.out.println(>'StringBuilder = '> + str);> >System.out.println(>'Capacity of StringBuilder = '> >+ capacity);> >}> }> |
>
>Wyjście
String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27>
StringBuilder to kolejna klasa w Javie używana do manipulowania ciągami znaków. Podobnie jak StringBuffer, jest to klasa zmienna, która pozwala modyfikować zawartość ciągu znaków, który reprezentuje. Jednak StringBuilder nie jest bezpieczny dla wątków, dlatego nie należy go używać w środowisku wielowątkowym.
Oto kilka przykładów użycia StringBuilder w Javie:
Jawa
public> class> StringBuilderExample {> >public> static> void> main(String[] args) {> >StringBuilder sb =>new> StringBuilder();> >sb.append(>'Hello'>);> >sb.append(>' '>);> >sb.append(>'world!'>);> >System.out.println(sb.toString());>// Output: 'Hello world!'> > >sb.insert(>6>,>'beautiful '>);> >System.out.println(sb.toString());>// Output: 'Hello beautiful world!'> > >sb.reverse();> >System.out.println(sb.toString());>// Output: '!dlrow lufituaeb olleH'> >}> }> |
>
jeśli przez podsumowanie Ruyarda Kiplinga
>Wyjście
Hello world! Hello beautiful world! !dlrow lufituaeb olleH>