StringBuilder en Java representa una seqüència mutable de caràcters. Com que la classe String a Java crea una seqüència de caràcters immutable, la classe StringBuilder ofereix una alternativa a la classe String, ja que crea una seqüència de caràcters mutable. La funció de StringBuilder és molt semblant a la classe StringBuffer, ja que totes dues proporcionen una alternativa a la classe String fent una seqüència mutable de caràcters. Tanmateix, la classe StringBuilder difereix de la classe StringBuffer en funció de la sincronització. La classe StringBuilder no ofereix cap garantia de sincronització, mentre que la classe StringBuffer sí. Per tant, aquesta classe està dissenyada per utilitzar-la com a reemplaçament de StringBuffer en llocs on el StringBuffer estava sent utilitzat per un sol fil (com és generalment el cas). Quan sigui possible, es recomana que aquesta classe s'utilitzi amb preferència a StringBuffer, ja que serà més ràpid en la majoria de les implementacions. Les instàncies de StringBuilder no són segures per a l'ús de diversos fils. Si es requereix aquesta sincronització, es recomana utilitzar StringBuffer. String Builder no és segur per a fils i té un alt rendiment en comparació amb el buffer String.
La jerarquia de classes és la següent:
java.lang.Object ↳ java.lang ↳ Class StringBuilder>
Sintaxi:
public final class StringBuilder extends Object implements Serializable, CharSequence>
Constructors a la classe Java StringBuilder
- StringBuilder(): construeix un generador de cadenes sense caràcters i amb una capacitat inicial de 16 caràcters. StringBuilder(int capacitat): construeix un generador de cadenes sense caràcters i una capacitat inicial especificada per l'argument de capacitat. StringBuilder(CharSequence seq): construeix un generador de cadenes que conté els mateixos caràcters que la CharSequence especificada. StringBuilder(String str): Construeix un generador de cadenes inicialitzat amb el contingut de la cadena especificada.
A continuació es mostra un programa de mostra per il·lustrar StringBuilder a Java.
Java
onclick javascript
// 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());> > }> }> |
>
>Sortida
String = GFG String1 = AAAABBBCCCC String2 capacity = 10 String3 = AAAABBBCCCC>
Mètodes a Java StringBuilder
StringBuilder adjunta (X x) : Aquest mètode afegeix la representació de cadena de l'argument de tipus X a la seqüència.
- StringBuilder appendCodePoint(int codePoint) : aquest mètode afegeix la representació de cadena de l'argument codePoint a aquesta seqüència.
- capacitat int () : aquest mètode retorna la capacitat actual.
- char charAt (índex int) : aquest mètode retorna el valor de caràcters d'aquesta seqüència a l'índex especificat. IntStream chars() : aquest mètode retorna un flux d'int zero ampliant els valors de caràcters d'aquesta seqüència.
- int codePointAt(índex int) : aquest mètode retorna el caràcter (punt de codi Unicode) a l'índex especificat.
- int codePointBefore (índex int) : aquest mètode retorna el caràcter (punt de codi Unicode) abans de l'índex especificat.
- int codePointCount(int beginIndex, int endIndex) : aquest mètode retorna el nombre de punts de codi Unicode a l'interval de text especificat d'aquesta seqüència. IntStream codePoints() : aquest mètode retorna un flux de valors de punt de codi d'aquesta seqüència.
- Suprimir StringBuilder (int inici, int final) : Aquest mètode elimina els caràcters d'una subcadena d'aquesta seqüència. StringBuilder deleteCharAt(índex int): aquest mètode elimina el caràcter a la posició especificada en aquesta seqüència.
- void ensureCapacity (int minimumCapacity) : Aquest mètode garanteix que la capacitat sigui almenys igual al mínim especificat.
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : els caràcters d'aquest mètode es copien d'aquesta seqüència a la matriu de caràcters de destinació dst.
- int indexOf() : aquest mètode retorna l'índex dins d'aquesta cadena de la primera ocurrència de la subcadena especificada. StringBuilder insert(int offset, boolean b): aquest mètode insereix la representació de cadena de l'argument alternatiu booleà en aquesta seqüència. StringBuilder insert() : aquest mètode insereix la representació de cadena de l'argument char en aquesta seqüència.
- int lastIndexOf() : aquest mètode retorna l'índex dins d'aquesta cadena de la darrera ocurrència de la subcadena especificada.
- longitud int () : aquest mètode retorna la longitud (recompte de caràcters). int offsetByCodePoints(índex int, int codePointOffset): aquest mètode retorna l'índex dins d'aquesta seqüència que es desplaça de l'índex donat per punts de codi codePointOffset.
- StringBuilder replace(int start, int end, String str) : aquest mètode substitueix els caràcters d'una subcadena d'aquesta seqüència per caràcters de la cadena especificada.
- StringBuilder invers () : Aquest mètode fa que aquesta seqüència de caràcters es substitueixi per la inversa de la seqüència.
- void setCharAt(índex int, char ch) : En aquest mètode, el caràcter de l'índex especificat s'estableix en ch.
- void setLength(int newLength) : Aquest mètode estableix la longitud de la seqüència de caràcters.
- CharSequence subSequence (inici int, final int) : aquest mètode retorna una nova seqüència de caràcters que és una subseqüència d'aquesta seqüència.
- Cadena subcadena() : aquest mètode retorna una cadena nova que conté una subseqüència de caràcters continguda actualment en aquesta seqüència de caràcters.
- String toString() : aquest mètode retorna una cadena que representa les dades d'aquesta seqüència.
- void trimToSize() : aquest mètode intenta reduir l'emmagatzematge utilitzat per a la seqüència de caràcters.
Exemple:
Java
algorisme de mergesort
// 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);> > }> }> |
>
>Sortida
String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27>
StringBuilder és una altra classe de Java que s'utilitza per manipular cadenes. Igual que StringBuffer, és una classe mutable que permet modificar el contingut de la cadena que representa. Tanmateix, StringBuilder no és segur per a fils, per la qual cosa no s'ha d'utilitzar en un entorn multifil.
Aquests són alguns exemples de com utilitzar StringBuilder a 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'> > }> }> |
>
svm
>Sortida
Hello world! Hello beautiful world! !dlrow lufituaeb olleH>