StringBuilder Java reiškia kintamą simbolių seką. Kadangi „Java“ eilutės klasė sukuria nekintamą simbolių seką, „StringBuilder“ klasė yra alternatyva eilutės klasei, nes sukuria kintamą simbolių seką. „StringBuilder“ funkcija yra labai panaši į „StringBuffer“ klasę, nes abi jos suteikia alternatyvą „String Class“, sukurdamos kintamą simbolių seką. Tačiau „StringBuilder“ klasė skiriasi nuo „StringBuffer“ klasės sinchronizavimo pagrindu. „StringBuilder“ klasė nesuteikia jokios sinchronizavimo garantijos, o „StringBuffer“ klasė suteikia. Todėl ši klasė skirta naudoti kaip StringBuffer pakaitalas tose vietose, kur StringBuffer naudojo viena gija (kaip paprastai). Jei įmanoma, rekomenduojama naudoti šią klasę, o ne StringBuffer, nes daugumoje diegimų ji bus greitesnė. „StringBuilder“ egzemplioriai nėra saugūs naudoti keliose gijose. Jei toks sinchronizavimas reikalingas, rekomenduojama naudoti StringBuffer. String Builder nėra saugus siūlams ir pasižymi dideliu našumu, palyginti su String buferiu.
Klasių hierarchija yra tokia:
java.lang.Object ↳ java.lang ↳ Class StringBuilder>
Sintaksė:
public final class StringBuilder extends Object implements Serializable, CharSequence>
„Java StringBuilder“ klasės konstruktoriai
- StringBuilder(): Sukuria eilučių kūrimo priemonę be simbolių ir pradinės talpos 16 simbolių. StringBuilder(int cap): sukuria eilučių kūrimo priemonę be simbolių ir pradinės talpos, nurodytos talpos argumentu. StringBuilder(CharSequence seq): Sukuria eilučių kūrimo priemonę, kurioje yra tokie patys simboliai kaip ir nurodyta CharSequence. StringBuilder(String str): Sukuria eilutės kūrimo priemonę, inicijuotą pagal nurodytos eilutės turinį.
Žemiau yra programos pavyzdys, skirtas „Java“ iliustruoti StringBuilder.
Java
// 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());> >}> }> |
>
>
c# žodynasIšvestis
String = GFG String1 = AAAABBBCCCC String2 capacity = 10 String3 = AAAABBBCCCC>
„Java StringBuilder“ metodai
StringBuilder priedas (X x) : Šis metodas prie sekos prideda X tipo argumento eilutės atvaizdavimą.
- StringBuilder appendCodePoint(int codePoint) : Šis metodas prie šios sekos prideda „codePoint“ argumento eilutės atvaizdavimą.
- vidinė talpa () : Šis metodas grąžina esamą talpą.
- char charAt(int index) : Šis metodas grąžina char reikšmę šioje sekoje pagal nurodytą indeksą. IntStream chars() : Šis metodas grąžina int srautą nuliui, pratęsiant šios sekos char reikšmes.
- int kodasPointAt(int index) : Šis metodas grąžina simbolį (Unicode kodo tašką) nurodytame indekse.
- int kodasPointBefore(int index) : Šis metodas grąžina simbolį (Unicode kodo tašką) prieš nurodytą indeksą.
- int kodasTaškų skaičius(int startIndex, int endIndex) : Šis metodas grąžina Unicode kodo taškų skaičių nurodytame šios sekos teksto diapazone. IntStream codePoints() : Šis metodas grąžina kodo taškų reikšmių srautą iš šios sekos.
- StringBuilder trynimas (int pradžia, int pabaiga) : Šis metodas pašalina simbolius šios sekos poeilėje. StringBuilder deleteCharAt(int index) : Šis metodas pašalina ženklą nurodytoje šios sekos vietoje.
- galia užtikrintiCapacity (int minimumCapacity) : Šis metodas užtikrina, kad talpa būtų bent jau lygi nurodytam minimumui.
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : Šio metodo simboliai nukopijuojami iš šios sekos į paskirties simbolių masyvą dst.
- int indexOf() : Šis metodas grąžina indeksą, esantį šioje eilutėje, pirmą kartą pasirodžiusi nurodytai poeiliui. StringBuilder įterpimas(int offset, loginis b) : Šis metodas įterpia loginio alternatyvaus argumento eilutės atvaizdavimą į šią seką. StringBuilder insert() : Šis metodas įterpia char argumento eilutę į šią seką.
- int lastIndexOf() : Šis metodas grąžina paskutinės nurodytos poeilutės pasikartojimo indeksą šioje eilutėje.
- int ilgis () : Šis metodas grąžina ilgį (simbolių skaičių). int offsetByCodePoints(int index, int codePointOffset) : šis metodas grąžina šios sekos indeksą, kuris nuo nurodyto indekso yra nukrypstamas codePointOffset kodo taškais.
- StringBuilder pakeisti (int pradžia, int pabaiga, eilutės eilutė) : Šis metodas pakeičia simbolius šios sekos poeilėje simboliais nurodytoje eilutėje.
- StringBuilder reverse() : Šis metodas pakeičia šią simbolių seką atvirkštine seka.
- void setCharAt(int index, char ch) : Taikant šį metodą, nurodyto indekso simbolis nustatomas į ch.
- void setLength(int newLength) : Šis metodas nustato simbolių sekos ilgį.
- CharSequence subSequence (int pradžia, tarpinė pabaiga) : Šis metodas grąžina naują simbolių seką, kuri yra šios sekos poseka.
- Stygos poeilutė () : Šis metodas grąžina naują eilutę, kurioje yra simbolių, šiuo metu esančių šioje simbolių sekoje, seka.
- String toString() : Šis metodas grąžina eilutę, vaizduojančią šios sekos duomenis.
- void trimToSize() : Šiuo metodu bandoma sumažinti simbolių sekai naudojamą saugyklą.
Pavyzdys:
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);> >}> }> |
foreach ciklo mašinraštis
>
>Išvestis
String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27>
„StringBuilder“ yra kita „Java“ klasė, naudojama manipuliuoti eilutėmis. Kaip ir StringBuffer, tai yra kintama klasė, leidžianti modifikuoti jos atstovaujamos eilutės turinį. Tačiau StringBuilder nėra saugus gijų, todėl jis neturėtų būti naudojamas kelių gijų aplinkoje.
Štai keletas pavyzdžių, kaip naudoti StringBuilder programoje 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'> >}> }> |
>
>Išvestis
Hello world! Hello beautiful world! !dlrow lufituaeb olleH>