logo

Třída StringBuilder v Javě s příklady

StringBuilder v Javě představuje proměnlivou sekvenci znaků. Protože třída String v Javě vytváří neměnnou sekvenci znaků, třída StringBuilder poskytuje alternativu k třídě String, protože vytváří proměnlivou sekvenci znaků. Funkce StringBuilder je velmi podobná třídě StringBuffer, protože obě poskytují alternativu k třídě String tím, že vytvářejí měnitelnou sekvenci znaků. Třída StringBuilder se však liší od třídy StringBuffer na základě synchronizace. Třída StringBuilder neposkytuje žádnou záruku synchronizace, zatímco třída StringBuffer ano. Proto je tato třída navržena pro použití jako drop-in náhrada za StringBuffer v místech, kde byl StringBuffer používán jedním vláknem (jak je tomu obecně). Kde je to možné, doporučuje se, aby byla tato třída použita přednostně před StringBuffer, protože bude rychlejší ve většině implementací. Instance StringBuilderu nejsou bezpečné pro použití více vlákny. Pokud je taková synchronizace vyžadována, pak se doporučuje použít StringBuffer. String Builder není bezpečný pro vlákna a má vysoký výkon ve srovnání s vyrovnávací pamětí String.

Hierarchie tříd je následující:

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

Syntax:



public final class StringBuilder extends Object implements Serializable, CharSequence>

Konstruktory ve třídě Java StringBuilder

    StringBuilder(): Vytvoří tvůrce řetězců, který neobsahuje žádné znaky a má počáteční kapacitu 16 znaků. StringBuilder(int kapacita): Vytvoří tvůrce řetězců bez znaků a počáteční kapacitu určenou argumentem kapacity. StringBuilder(CharSequence seq): Vytvoří tvůrce řetězců, který obsahuje stejné znaky jako zadaná CharSequence. StringBuilder(String str): Vytvoří tvůrce řetězců inicializovaný podle obsahu zadaného řetězce.

Níže je ukázkový program pro ilustraci StringBuilder v Javě.

Jáva


algoritmus řazení vložení



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

>

>

Výstup

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

Metody v Java StringBuilder

StringBuilder append (X x) : Tato metoda připojí řetězcovou reprezentaci argumentu typu X k sekvenci.

  1. StringBuilder appendCodePoint(int codePoint) : Tato metoda připojí k této sekvenci řetězcovou reprezentaci argumentu codePoint.
  2. int kapacita() : Tato metoda vrací aktuální kapacitu.
  3. char charAt(int index) : Tato metoda vrací hodnotu char v této sekvenci na zadaném indexu.
  4. IntStream chars() : Tato metoda vrací proud int nula rozšiřující hodnoty char z této sekvence.
  5. int codePointAt(int index) : Tato metoda vrací znak (bod kódu Unicode) na zadaném indexu.
  6. int codePointBefore(int index) : Tato metoda vrací znak (bod v kódu Unicode) před zadaný index.
  7. int codePointCount(int beginIndex, int endIndex) : Tato metoda vrací počet bodů kódu Unicode v zadaném rozsahu textu této sekvence.
  8. IntStream codePoints() : Tato metoda vrací proud hodnot bodů kódu z této sekvence.
  9. StringBuilder delete (int start, int end) : Tato metoda odstraní znaky v podřetězci této sekvence.
  10. StringBuilder deleteCharAt(int index) : Tato metoda odstraní znak na zadané pozici v této sekvenci.
  11. void secureCapacity(int minimumCapacity) : Tato metoda zajišťuje, že kapacita je alespoň rovna zadanému minimu.
  12. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : Znaky této metody jsou zkopírovány z této sekvence do cílového pole znaků dst.
  13. int indexOf() : Tato metoda vrátí index v rámci tohoto řetězce prvního výskytu zadaného podřetězce.
  14. StringBuilder insert(int offset, boolean b) : Tato metoda vloží řetězcovou reprezentaci booleovského alternativního argumentu do této sekvence. StringBuilder insert() : Tato metoda vloží řetězcovou reprezentaci argumentu char do této sekvence.
  15. int lastIndexOf() : Tato metoda vrací index v rámci tohoto řetězce posledního výskytu zadaného podřetězce.
  16. int délka() : Tato metoda vrací délku (počet znaků).
  17. int offsetByCodePoints(int index, int codePointOffset) : Tato metoda vrací index v rámci této sekvence, který je od daného indexu posunut o body kódu codePointOffset.
  18. StringBuilder nahradit (int start, int end, String str) : Tato metoda nahrazuje znaky v podřetězci této sekvence znaky v zadaném řetězci.
  19. StringBuilder reverse() : Tato metoda způsobí, že tato sekvence znaků bude nahrazena obrácenou sekvencí.
  20. void setCharAt(int index, char ch) : V této metodě je znak na zadaném indexu nastaven na ch.
  21. void setLength(int newLength) : Tato metoda nastavuje délku sekvence znaků.
  22. CharSequence subSequence (int start, int end) : Tato metoda vrací novou sekvenci znaků, která je podsekvencí této sekvence.
  23. String substring() : Tato metoda vrací nový řetězec, který obsahuje podsekvenci znaků aktuálně obsažených v této posloupnosti znaků.
  24. String toString() : Tato metoda vrací řetězec představující data v této sekvenci.
  25. void trimToSize() : Tato metoda se pokouší zmenšit úložný prostor používaný pro sekvenci znaků.

Příklad:

Jáva




// 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ýstup

pole řetězců v programování v c
String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27>

StringBuilder je další třída v Javě, která se používá k manipulaci s řetězci. Stejně jako StringBuffer je to proměnlivá třída, která vám umožňuje upravovat obsah řetězce, který představuje. StringBuilder však není bezpečný pro vlákna, takže by se neměl používat v prostředí s více vlákny.

Zde je několik příkladů, jak používat StringBuilder v Javě:

Jáva




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

>

>

Výstup

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