Caractéristiques:
La longueur est variable (la couche sous-jacente est en fait un nouveau tableau constant)
Plusieurs types de données peuvent être exploités directement
Enfin, il sera transformé en une chaîne à travers la méthode de tostring
Peut modifier les chaînes
Les fils sont synchrones
Différences par rapport aux tableaux:
StringBuffer: la longueur est variable et peut stocker différents types de données
Tableau: la longueur est immuable et un seul type de données peut être stocké
Fonction StringBuffer:
Stockage (créer)
StringBuffer apende (): Ajoutez les données spécifiées en tant que paramètre à la fin des données existantes (à l'exception des données d'octets et de types courtes, il existe d'autres types de données à l'exception des données sans)
Insert de StringBuffer (index, données): Vous pouvez insérer des données dans l'emplacement d'index spécifié
La copie de code est la suivante:
public static void method_add () {
StringBuffer sb = new StringBuffer ();
//SB.APPED("abc").APPEnd(True).APPEND ° 5378);
// StringBuffer SB1 = SB.APPEND (34563);
System.out.println ("SB == SB1:" + (SB == SB1)); // Le résultat est le vrai SB et SB1 pointent vers le même objet, qui est appelé la théorie du bassin. Ajouté au conteneur StringBuffer, c'est toujours le même conteneur
// ajouter des éléments à l'emplacement spécifié
// StringBuffer SB2 = SB1.
// sop (sb2.toString ());
}
Supprimer
StringBuffer Delete (start, end) Supprimez les données dans le tampon, y compris le démarrage, pas la fin.
StringBuffer Deletecharat (index) Supprimez le caractère à l'emplacement spécifié
La copie de code est la suivante:
public static void method_del () {
StringBuffer sb = new StringBuffer ("huangjianfeng");
System.out.println (sb.toString ());
// Supprimer une certaine partie
sb.delete (1,3);
System.out.println (sb.toString ());
// Supprimer un élément dans la chaîne
sb.delete (2,3);
sb.deletecharat (2);
System.out.println (sb.toString ());
// effacer le tampon
// sb = new StringBuffer // Erreur, il s'agit d'une autre définition d'un tampon SB pointant vers un nouveau tampon
sb.delete (0, sb.length ());
System.out.println (sb.toString ());
}
Obtenir (lire)
La copie de code est la suivante:
Char Charat (INT INDEX)
Int indexof (String Str)
int lastIndexof (String Str)
int length ()
String substring (int start, int fin)
La copie de code est la suivante:
public static void method_read () {
StringBuffer sb = new StringBuffer ("JavaScript");
char ch = sb.charat (3);
int index1 = sb.indexof ("sc");
int index2 = sb.lastIndexof ("sc");
int len = sb.length ();
String str = SB.SubString (5,7);
sop ("ch =" + ch + ", index1 =" + index1 + ", index2 =" + index2 + ", len =" + len + ", str =" + str);
}
Modifier (mise à jour)
La copie de code est la suivante:
StringBuffer remplace (start, end, string);
void SetCharat (INT INDEX, CHAR CH);
La copie de code est la suivante:
public static void method_update () {
StringBuffer SB1 = new StringBuffer ("JavaScript");
StringBuffer SB2 = SB1.replace (4,10, "EE");
System.out.println (SB2);
SB1.Setcharat (1, «B»);
System.out.println (SB1);
}
Autres méthodes couramment utilisées:
Invert StringBuffer Reverse ();
Définir la longueur du conteneur stringbuffer setLength ();
Stockez les données spécifiées dans le tampon dans le tableau de caractères spécifié VOID Getchars (int srcbegin, int srcend, char [] dst, int dstbegin);
La copie de code est la suivante:
public static void method_other () {
StringBuffer sb = new StringBuffer ();
// définir la longueur
sb.setLength (4);
System.out.println (sb.length ());
// inverser la chaîne
StringBuffer SB1 = new StringBuffer ("HuangjianFeng");
sb1 = sb1.reverse ();
System.out.println (SB1);
// stockage les données spécifiées dans le tampon dans le tableau de caractères spécifié
char [] arr = nouveau char [15];
StringBuffer SB2 = new StringBuffer ("HuangjianFeng");
sb2.getchars (0, 7, arr, 3);
pour (char sbs: arr) {
System.out.print (SBS);
}
}
StringBuilder apparaît après la version JDK1.5
StringBuilder est agnostique, généralement utilisé pour le thread unique pour améliorer l'efficacité, StringBuffer est simultané, généralement utilisé pour le développement multi-thread, il est recommandé d'utiliser StringBuilder pour améliorer l'efficacité.
Améliorer trois facteurs: améliorer l'efficacité, simplifier l'écriture et améliorer la sécurité