StringBuilder Javassa edustaa muuttuvaa merkkijonoa. Koska Java-merkkijonoluokka luo muuttumattoman merkkijonon, StringBuilder-luokka tarjoaa vaihtoehdon String Classille, koska se luo muuttuvan merkkijonon. StringBuilderin toiminto on hyvin samanlainen kuin StringBuffer-luokan, koska molemmat tarjoavat vaihtoehdon String Classille tekemällä muuttuvan merkkijonon. StringBuilder-luokka eroaa kuitenkin StringBuffer-luokasta synkronoinnin perusteella. StringBuilder-luokka ei takaa synkronointia, kun taas StringBuffer-luokka takaa. Siksi tämä luokka on suunniteltu käytettäväksi StringBufferin korvikkeena paikoissa, joissa StringBufferia käytti yksi säie (kuten yleensä). Mikäli mahdollista, on suositeltavaa käyttää tätä luokkaa StringBufferin sijaan, koska se on nopeampi useimmissa toteutuksissa. StringBuilderin esiintymät eivät ole turvallisia useiden säikeiden käyttöön. Jos tällaista synkronointia tarvitaan, on suositeltavaa käyttää StringBufferia. String Builder ei ole lankaturvallinen ja suorituskykyinen String-puskuriin verrattuna.
Luokkahierarkia on seuraava:
java.lang.Object ↳ java.lang ↳ Class StringBuilder>
Syntaksi:
public final class StringBuilder extends Object implements Serializable, CharSequence>
Rakentajat Java StringBuilder -luokassa
- StringBuilder(): Muodostaa merkkijonojen rakentajan, jossa ei ole merkkejä ja jonka alkukapasiteetti on 16 merkkiä. StringBuilder(int-kapasiteetti): Muodostaa merkkijonojen rakentajan, jossa ei ole merkkejä ja jonka kapasiteettiargumentin määrittää alkukapasiteetti. StringBuilder(CharSequence seq): Muodostaa merkkijononmuodostajan, joka sisältää samat merkit kuin määritetty CharSequence. StringBuilder(String str): Muodostaa merkkijonojen rakentajan, joka alustetaan määritetyn merkkijonon sisältöön.
Alla on esimerkkiohjelma StringBuilderin havainnollistamiseksi Javassa.
char int javaan
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());> >}> }> |
>
>Lähtö
String = GFG String1 = AAAABBBCCCC String2 capacity = 10 String3 = AAAABBBCCCC>
Java StringBuilderin menetelmät
StringBuilder-liite(X x) : Tämä menetelmä liittää sekvenssiin X-tyypin argumentin merkkijonoesityksen.
- StringBuilder appendCodePoint(int codePoint) : Tämä menetelmä lisää tähän sekvenssiin codePoint-argumentin merkkijonoesityksen.
- int kapasiteetti () : Tämä menetelmä palauttaa nykyisen kapasiteetin.
- char charAt(int index) : Tämä menetelmä palauttaa char-arvon tässä järjestyksessä määritetyssä indeksissä. IntStream chars() : Tämä menetelmä palauttaa int nolla -virran, joka laajentaa tämän sekvenssin merkkiarvoja.
- int codePointAt(int index) : Tämä menetelmä palauttaa merkin (Unicode-koodipisteen) määritetyssä indeksissä.
- int codePointBefore(int index) : Tämä menetelmä palauttaa merkin (Unicode-koodipisteen) ennen määritettyä indeksiä.
- int codePointCount(int alkuIndeksi, int endindex) : Tämä menetelmä palauttaa Unicode-koodipisteiden määrän tämän sekvenssin määritetyllä tekstialueella. IntStream codePoints() : Tämä menetelmä palauttaa koodipistearvojen virran tästä sekvenssistä.
- StringBuilder-poisto(int alku, int loppu) : Tämä menetelmä poistaa merkit tämän sekvenssin osamerkkijonosta. StringBuilder deleteCharAt(int index) : Tämä menetelmä poistaa merkin määritetystä kohdasta tässä sarjassa.
- void varmistaaCapacity(int minimiCapacity) : Tämä menetelmä varmistaa, että kapasiteetti on vähintään yhtä suuri kuin määritetty minimi.
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : Tämän menetelmän merkit kopioidaan tästä sekvenssistä kohdemerkkijonoon dst.
- int indexOf() : Tämä menetelmä palauttaa indeksin tässä merkkijonossa määritetyn alimerkkijonon ensimmäisestä esiintymisestä. StringBuilder insert(int offset, boolean b) : Tämä menetelmä lisää boolen vaihtoehtoisen argumentin merkkijonoesityksen tähän sekvenssiin. StringBuilder insert() : Tämä menetelmä lisää char-argumentin merkkijonoesityksen tähän sekvenssiin.
- int lastIndexOf() : Tämä menetelmä palauttaa tämän merkkijonon indeksin määritetyn alimerkkijonon viimeisestä esiintymisestä.
- int pituus () : Tämä menetelmä palauttaa pituuden (merkkimäärän). int offsetByCodePoints(int-indeksi, int codePointOffset) : Tämä menetelmä palauttaa indeksin tässä sarjassa, joka on offset annetusta indeksistä codePointOffset-koodipisteillä.
- StringBuilder korvaa(int alku, in loppu, merkkijono) : Tämä menetelmä korvaa tämän sarjan alimerkkijonon merkit määritetyn merkkijonon merkeillä.
- StringBuilder käänteinen() : Tämä menetelmä korvaa tämän merkkijonon käänteisellä merkillä.
- void setCharAt(int index, char ch) : Tässä menetelmässä määritetyn indeksin merkiksi asetetaan ch.
- void setLength(int newLength) : Tämä menetelmä määrittää merkkijonon pituuden.
- CharSequence-alisekvenssi (int alku, int loppu) : Tämä menetelmä palauttaa uuden merkkijonon, joka on tämän sekvenssin osasekvenssi.
- Merkkijono osamerkkijono() : Tämä menetelmä palauttaa uuden merkkijonon, joka sisältää tähän merkkijonoon tällä hetkellä sisältyvien merkkien alasarjan.
- Merkkijono merkkijonoon() : Tämä menetelmä palauttaa merkkijonon, joka edustaa tämän sekvenssin tietoja.
- void trimToSize() : Tämä menetelmä yrittää vähentää merkkijonon tallennustilaa.
Esimerkki:
Java
Java-kielen haastattelukysymykset
// 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);> >}> }> |
>
>Lähtö
String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27>
StringBuilder on toinen Java-luokka, jota käytetään merkkijonojen käsittelyyn. Kuten StringBuffer, se on muuttuva luokka, jonka avulla voit muokata sen edustaman merkkijonon sisältöä. StringBuilder ei kuitenkaan ole säikeen turvallinen, joten sitä ei tule käyttää monisäikeisessä ympäristössä.
Tässä on esimerkkejä StringBuilderin käytöstä Javassa:
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'> >}> }> |
>
python rstrip
>Lähtö
Hello world! Hello beautiful world! !dlrow lufituaeb olleH>