logo

Trieda StringBuilder v jazyku Java s príkladmi

StringBuilder v jazyku Java predstavuje meniteľnú postupnosť znakov. Keďže trieda String v jazyku Java vytvára nemennú sekvenciu znakov, trieda StringBuilder poskytuje alternatívu k triede String, pretože vytvára meniteľnú sekvenciu znakov. Funkcia StringBuilder je veľmi podobná triede StringBuffer, pretože obe poskytujú alternatívu k triede String vytvorením meniteľnej sekvencie znakov. Trieda StringBuilder sa však líši od triedy StringBuffer na základe synchronizácie. Trieda StringBuilder neposkytuje žiadnu záruku synchronizácie, zatiaľ čo trieda StringBuffer áno. Preto je táto trieda navrhnutá na použitie ako náhrada za StringBuffer na miestach, kde bol StringBuffer používaný jedným vláknom (ako je to vo všeobecnosti bežné). Ak je to možné, odporúča sa, aby sa táto trieda používala prednostne pred StringBuffer, pretože pri väčšine implementácií bude rýchlejšia. Inštancie StringBuildera nie sú bezpečné na použitie viacerými vláknami. Ak je takáto synchronizácia potrebná, odporúča sa použiť StringBuffer. String Builder nie je bezpečný pre vlákna a má vysoký výkon v porovnaní s vyrovnávacou pamäťou String.

Hierarchia tried je nasledovná:

java.lang.Object ↳ java.lang ↳ Class StringBuilder>

Syntax:



public final class StringBuilder extends Object implements Serializable, CharSequence>

Konštruktory v triede Java StringBuilder

    StringBuilder(): Vytvorí tvorca reťazcov bez znakov a s počiatočnou kapacitou 16 znakov. StringBuilder(int capacity): Vytvorí tvorca reťazcov bez znakov a počiatočnú kapacitu špecifikovanú argumentom kapacity. StringBuilder(CharSequence seq): Vytvorí nástroj na tvorbu reťazcov, ktorý obsahuje rovnaké znaky ako zadaná CharSequence. StringBuilder(String str): Vytvorí tvorca reťazcov inicializovaný na obsah zadaného reťazca.

Nižšie je uvedený vzorový program na ilustráciu StringBuildera v jazyku Java.

Java


herec govinda



// 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());> >}> }>

bfs a dfs
>

>

Výkon

String = GFG String1 = AAAABBBCCCC String2 capacity = 10 String3 = AAAABBBCCCC>

Metódy v Java StringBuilder

Príloha StringBuilder (X x) : Táto metóda pripojí reťazcovú reprezentáciu argumentu typu X k sekvencii.

  1. StringBuilder appendCodePoint(int codePoint) : Táto metóda pripojí k tejto sekvencii reťazcovú reprezentáciu argumentu codePoint.
  2. int kapacita() : Táto metóda vráti aktuálnu kapacitu.
  3. char charAt (index int) : Táto metóda vráti hodnotu char v tejto sekvencii na zadanom indexe.
  4. IntStream chars() : Táto metóda vracia prúd int nula, ktorý rozširuje hodnoty char z tejto sekvencie.
  5. int codePointAt(int index) : Táto metóda vráti znak (bod kódu Unicode) na zadanom indexe.
  6. int codePointBefore(int index) : Táto metóda vráti znak (bod kódu Unicode) pred zadaný index.
  7. int codePointCount(int beginIndex, int endIndex) : Táto metóda vráti počet bodov kódu Unicode v zadanom rozsahu textu tejto sekvencie.
  8. IntStream codePoints() : Táto metóda vracia prúd hodnôt bodov kódu z tejto sekvencie.
  9. StringBuilder delete (int start, int end) : Táto metóda odstráni znaky v podreťazci tejto sekvencie.
  10. StringBuilder deleteCharAt(int index) : Táto metóda odstráni znak na zadanej pozícii v tejto sekvencii.
  11. void secureCapacity (int minimumCapacity) : Táto metóda zaisťuje, že kapacita je aspoň rovná špecifikovanému minimu.
  12. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : Znaky tejto metódy sa skopírujú z tejto sekvencie do poľa cieľových znakov dst.
  13. int indexOf() : Táto metóda vráti index v rámci tohto reťazca prvého výskytu zadaného podreťazca.
  14. StringBuilder insert(int offset, boolean b) : Táto metóda vloží reťazcovú reprezentáciu boolovského alternatívneho argumentu do tejto sekvencie. StringBuilder insert() : Táto metóda vloží reťazcovú reprezentáciu argumentu char do tejto sekvencie.
  15. int lastIndexOf() : Táto metóda vráti index v rámci tohto reťazca posledného výskytu zadaného podreťazca.
  16. int dĺžka() : Táto metóda vráti dĺžku (počet znakov).
  17. int offsetByCodePoints(int index, int codePointOffset) : Táto metóda vráti index v rámci tejto sekvencie, ktorý je od daného indexu posunutý o kódové body codePointOffset.
  18. StringBuilder nahradiť (int start, int end, String str) : Táto metóda nahrádza znaky v podreťazci tejto sekvencie znakmi v zadanom reťazci.
  19. StringBuilder reverse() : Táto metóda spôsobí, že táto postupnosť znakov bude nahradená opačnou sekvenciou.
  20. void setCharAt(int index, char ch) : V tejto metóde je znak na zadanom indexe nastavený na ch.
  21. void setLength(int newLength) : Táto metóda nastavuje dĺžku sekvencie znakov.
  22. CharSequence subSequence (int začiatok, int koniec) : Táto metóda vráti novú sekvenciu znakov, ktorá je podsekvenciou tejto sekvencie.
  23. String substring() : Táto metóda vráti nový reťazec, ktorý obsahuje podsekvenciu znakov aktuálne obsiahnutých v tejto sekvencii znakov.
  24. String toString() : Táto metóda vráti reťazec reprezentujúci údaje v tejto sekvencii.
  25. void trimToSize() : Táto metóda sa pokúša zmenšiť úložný priestor používaný pre sekvenciu znakov.

Príklad:

Java


np.klip



// 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);> >}> }>

>

>

Výkon

String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27>

StringBuilder je ďalšia trieda v jazyku Java, ktorá sa používa na manipuláciu s reťazcami. Podobne ako StringBuffer je to meniteľná trieda, ktorá vám umožňuje upravovať obsah reťazca, ktorý predstavuje. StringBuilder však nie je bezpečný pre vlákna, takže by sa nemal používať v prostredí s viacerými vláknami.

Tu je niekoľko príkladov, ako používať StringBuilder v jazyku Java:

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'> >}> }>

>

reťazec ako pole

>

Výkon

Hello world! Hello beautiful world! !dlrow lufituaeb olleH>