StringBuilder v Javi predstavlja spremenljivo zaporedje znakov. Ker razred nizov v Javi ustvari nespremenljivo zaporedje znakov, je razred StringBuilder alternativa razredu nizov, saj ustvari spremenljivo zaporedje znakov. Funkcija StringBuilderja je zelo podobna razredu StringBuffer, saj oba nudita alternativo razredu String tako, da naredita spremenljivo zaporedje znakov. Vendar pa se razred StringBuilder razlikuje od razreda StringBuffer na podlagi sinhronizacije. Razred StringBuilder ne zagotavlja sinhronizacije, medtem ko razred StringBuffer zagotavlja. Zato je ta razred zasnovan za uporabo kot spustni nadomestek za StringBuffer na mestih, kjer je StringBuffer uporabljala ena nit (kot je na splošno). Kjer je mogoče, je priporočljivo, da se ta razred uporablja namesto StringBuffer, saj bo v večini izvedb hitrejši. Primerki StringBuilderja niso varni za uporabo v več nitih. Če je taka sinhronizacija potrebna, je priporočljiva uporaba StringBuffer. String Builder v primerjavi z vmesnim pomnilnikom nizov ni varen za niti in ima visoko zmogljivost.
Hierarhija razredov je naslednja:
java.lang.Object ↳ java.lang ↳ Class StringBuilder>
Sintaksa:
public final class StringBuilder extends Object implements Serializable, CharSequence>
Konstruktorji v razredu Java StringBuilder
- StringBuilder(): sestavi graditelj nizov brez znakov in z začetno zmogljivostjo 16 znakov. StringBuilder(int capacity): sestavi graditelj nizov brez znakov in z začetno zmogljivostjo, določeno z argumentom zmogljivosti. StringBuilder(CharSequence seq): Konstruira graditelj nizov, ki vsebuje enake znake kot navedena CharSequence. StringBuilder(String str): Konstruira graditelj nizov, ki je inicializiran na vsebino navedenega niza.
Spodaj je vzorčni program za ponazoritev StringBuilderja v Javi.
Java
k-nn algoritem
// 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());> >}> }> |
>
>
preimenovanje imenika v linuxuIzhod
String = GFG String1 = AAAABBBCCCC String2 capacity = 10 String3 = AAAABBBCCCC>
Metode v Java StringBuilder
StringBuilder doda (X x) : Ta metoda zaporedju doda predstavitev niza argumenta tipa X.
- StringBuilder appendCodePoint(int codePoint) : Ta metoda temu zaporedju doda predstavitev niza argumenta codePoint.
- int zmogljivost() : Ta metoda vrne trenutno zmogljivost.
- char charAt(int indeks) : Ta metoda vrne vrednost char v tem zaporedju pri podanem indeksu. IntStream chars() : Ta metoda vrne tok int zero, ki razširi vrednosti char iz tega zaporedja.
- int codePointAt(int indeks) : Ta metoda vrne znak (kodno točko Unicode) pri podanem indeksu.
- int codePointBefore(int indeks) : Ta metoda vrne znak (kodno točko Unicode) pred podanim indeksom.
- int codePointCount(int beginIndex, int endIndex) : Ta metoda vrne število kodnih točk Unicode v podanem obsegu besedila tega zaporedja. IntStream codePoints() : Ta metoda vrne tok vrednosti kodnih točk iz tega zaporedja.
- StringBuilder izbriši (int začetek, int konec) : Ta metoda odstrani znake v podnizu tega zaporedja. StringBuilder deleteCharAt(int index) : Ta metoda odstrani char na podanem mestu v tem zaporedju.
- void secureCapacity(int minimumCapacity) : Ta metoda zagotavlja, da je zmogljivost vsaj enaka določenemu minimumu.
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : Znaki te metode se kopirajo iz tega zaporedja v ciljno matriko znakov dst.
- int indexOf() : Ta metoda vrne indeks znotraj tega niza prve pojavitve navedenega podniza. StringBuilder insert(int offset, boolean b) : Ta metoda v to zaporedje vstavi predstavitev niza logičnega nadomestnega argumenta. StringBuilder insert() : Ta metoda vstavi nizovno predstavitev argumenta char v to zaporedje.
- int lastIndexOf() : Ta metoda vrne indeks v tem nizu zadnje pojavitve navedenega podniza.
- int dolžina () : Ta metoda vrne dolžino (število znakov). int offsetByCodePoints(int index, int codePointOffset) : Ta metoda vrne indeks znotraj tega zaporedja, ki je zamaknjen glede na dani indeks za kodne točke codePointOffset.
- StringBuilder zamenjaj (int začetek, int konec, niz str) : Ta metoda zamenja znake v podnizu tega zaporedja z znaki v navedenem nizu.
- StringBuilder reverse() : Ta metoda povzroči, da se to zaporedje znakov zamenja z obratnim zaporedjem.
- void setCharAt(int indeks, char ch) : Pri tej metodi je znak pri podanem indeksu nastavljen na ch.
- void setLength(int newLength) : Ta metoda nastavi dolžino zaporedja znakov.
- CharSequence subSequence(int začetek, int konec) : Ta metoda vrne novo zaporedje znakov, ki je podzaporedje tega zaporedja.
- Niz podniz() : Ta metoda vrne nov niz, ki vsebuje podzaporedje znakov, ki so trenutno v tem zaporedju znakov.
- Niz vString() : Ta metoda vrne niz, ki predstavlja podatke v tem zaporedju.
- void trimToSize() : Ta metoda poskuša zmanjšati prostor za shranjevanje zaporedja znakov.
primer:
Java
// 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);> >}> }> |
>
>Izhod
String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27>
StringBuilder je še en razred v Javi, ki se uporablja za manipulacijo nizov. Tako kot StringBuffer je spremenljiv razred, ki vam omogoča spreminjanje vsebine niza, ki ga predstavlja. Vendar pa StringBuilder ni varen za niti, zato ga ne bi smeli uporabljati v okolju z več nitmi.
Tukaj je nekaj primerov uporabe StringBuilderja v Javi:
Java
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'> >}> }> |
>
slovar c#
>Izhod
Hello world! Hello beautiful world! !dlrow lufituaeb olleH>