String est une classe invariante. L'utilisation de la chaîne pour modifier une chaîne créera un nouvel objet String. S'il est modifié fréquemment, de nombreux objets de chaîne seront générés, ce qui est très coûteux. Par conséquent, Java fournit une classe StringBuffer, qui est beaucoup plus efficace que la chaîne dans les chaînes de modification.
Il y a 3 classes en Java qui sont responsables des opérations de caractère.
classe publique usingStringBuffer {/ ** * Trouver la chaîne correspondante * / public static void testFindstr () {stringBuffer sb = new StringBuffer (); sb.append ("Ceci est un stringbuffer"); // Renvoie la position où la sous-chaîne apparaît d'abord dans la chaîne. S'il n'existe pas, renvoyez le nombre négatif System.out.println ("sb.indexof (/" is / ") =" + sb.indexof ("is")); // Définir les paramètres de la méthode indexof et spécifiez le système de position de démarrage correspondant.out.println ("sb.indexof (/" is / ") =" + sb.indexof ("is", 3)); // Renvoie la dernière position de la sous-chaîne dans la chaîne. S'il n'existe pas, renvoyez le nombre négatif System.out.println ("sb.lastIndexof (/" is / ") =" + sb.lastIndexof ("is")); // Définissez les paramètres pour la méthode LastIndexof et spécifiez le système de position d'extrémité de correspondance.out.println ("sb.lastIndexof (/" is / ", 1) =" + sb.lastIndexof ("is", 1)); } / ** * Intercepter la chaîne * / public static void testSubstr () {StringBuffer sb = new StringBuffer (); sb.append ("Ceci est un stringbuffer"); // La position de terminaison par défaut est la fin de la chaîne System.out.print ("SB.SubString (4) =" + SB.SubString (4)); // La méthode de sous-chaîne intercepte la chaîne, qui peut spécifier la position de départ et la position de terminaison de l'interception System.out.print ("SB.SubString (4,9) =" + SB.Substring (4, 9)); } / ** * Obtenez les caractères à une certaine position dans la chaîne * / public static void testCharatStr () {stringBuffer sb = new StringBuffer ("Ceci est un stringBuffer"); System.out.println (sb.charat (sb.length () - 1)); } / ** * Ajoutez différents types de données à la queue de la chaîne * / public static void testAPPEnd () {StringBuffer sb = new StringBuffer ("Ceci est un stringBuffer!"); SB.APPEND (1.23F); System.out.println (sb.toString ()); } / ** * Supprimer les données dans String * / public static void testdelete () {StringBuffer sb = new StringBuffer ("Ceci est un stringBuffer!"); sb.delete (0, 5); sb.deletecharat (sb.length () - 1); System.out.println (sb.toString ()); } / ** * Insérez différents types de données dans les chaînes * / public static void testiNsert () {StringBuffer sb = new StringBuffer ("Ceci est un stringBuffer!"); // peut insérer des caractères, des tableaux de caractères, des chaînes et divers nombres et des valeurs booléennes à des positions spécifiées sb.insert (2, «w»); sb.insert (3, new char [] {'a', 'b', 'c'}); sb.insert (8, "ABC"); sb.insert (2, 3); sb.insert (3, 2,3f); SB.Insert (6, 3,75d); SB.Insert (5, 9843L); sb.insert (2, true); System.out.println ("TestiNsert:" + sb.toString ()); } / ** * Remplacez certains caractères dans une chaîne * / public static void testreplace () {stringBuffer sb = new StringBuffer ("Ceci est un stringbuffer!"); // Remplacez un certain caractère dans une chaîne par une autre chaîne sb.replace (10, sb.length (), "entier"); System.out.println ("TestReplace:" + sb.toString ()); } / ** * String inverse * / public static void reversestr () {StringBuffer sb = new StringBuffer ("Ceci est un stringBuffer!"); System.out.println (sb.reverse ()); // La méthode inverse inverse la chaîne}} résumé:
StringBuffer n'est pas une classe invariante. Lors de la modification du contenu d'une chaîne, aucun nouvel objet n'est créé. Par conséquent, il convient plus à la modification des chaînes que les classes de chaînes;
La classe StringBuffer ne fournit pas la même méthode ToCharArray que String;
La méthode de remplacement de la classe StringBuffer est différente de la méthode de remplacement de la classe String. Sa méthode de remplacement a trois paramètres. Le premier paramètre spécifie la position de début de la sous-chaîne remplacée, le deuxième paramètre spécifie la position finale de la sous-chaîne remplacée et le troisième paramètre spécifie la nouvelle sous-chaîne.
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.