Les objets de chaîne sont immuables. Chaque fois que vous utilisez l'une des méthodes de la classe System.String, vous devez créer un nouvel objet de chaîne en mémoire, ce qui nécessite l'allocation d'un nouvel espace pour le nouvel objet. La surcharge système associée à la création d'un nouvel objet de chaîne peut être très coûteuse dans des situations où des modifications répétées doivent être effectuées sur la chaîne. Si vous souhaitez modifier une chaîne sans créer un nouvel objet, vous pouvez utiliser la classe System.Text.StringBuilder. Par exemple, l'utilisation de la classe StringBuilder peut améliorer les performances lors de la concaténation de nombreuses chaînes ensemble dans une boucle.
En initialisant la variable avec une méthode de constructeur surchargé, une nouvelle instance de la classe StringBuilder peut être créée, comme expliqué dans l'exemple suivant.
StringBuilder myStringBuilder = new StringBuilder ("Hello World!");(I) régler la capacité et la longueur
Bien que l'objet StringBuilder soit un objet dynamique qui permet le nombre de caractères dans la chaîne qu'il résume, vous pouvez spécifier une valeur pour le nombre maximum de caractères qu'il peut contenir. Cette valeur est appelée la capacité de l'objet et ne doit pas être confondue avec la longueur de chaîne que l'objet StringBuilder actuel détient. Par exemple, vous pouvez créer une nouvelle instance de la classe StringBuilder avec la chaîne "Hello" (longueur 5), tout en spécifiant que la capacité maximale de l'objet est de 25. Lorsqu'un STRACHBUILDER est modifié, il ne réallote pas l'espace pour lui-même jusqu'à ce que la capacité soit atteinte. Lorsque la capacité est atteinte, un nouvel espace sera automatiquement alloué et la capacité sera doublée. Vous pouvez utiliser l'un des constructeurs surchargés pour spécifier la capacité de la classe StringBuilder. L'exemple de code suivant spécifie que l'objet MyStringBuilder peut être étendu à un maximum de 25 blancs.
StringBuilderMystringBuilder = new StringBuilder ("Hello World!", 25); De plus, la longueur maximale de l'objet peut être définie à l'aide de la propriété de capacité de lecture / écriture. L'exemple de code suivant utilise la propriété de capacité pour définir la longueur maximale d'un objet.
MyStringBuilder.capacity = 25;
(Ii) Le suivant répertorie plusieurs méthodes courantes de ce type:
(1) La méthode d'ajout peut être utilisée pour ajouter une représentation de chaîne d'un texte ou d'un objet à la fin d'une chaîne représentée par l'objet StringBuilder actuel. L'exemple suivant initialise un objet StringBuilder à "Hello World", puis ajoute du texte à la fin de l'objet. L'espace sera automatiquement alloué au besoin.
StringBuilDerMystringBuilder = new StringBuilder ("Hello World!"); MystringBuilder.append ("What A Beautiful Day."); Console.WriteLine (MyStringBuilder);Cet exemple affiche Hello World! Quelle journée abusive. à la console.
(2) La méthode APPENDFORMAT ajoute du texte à la fin de StringBuilder et implémente l'interface IFORMATTABLE, afin qu'il puisse accepter les chaînes de format standard décrites dans la section de formatage. Vous pouvez utiliser cette méthode pour personnaliser le format de la variable et ajouter ces valeurs à l'arrière du stringbuilder. L'exemple suivant utilise la méthode APPENDFORMAT pour placer une valeur entière définie sur le format de valeur de devise à la fin de StringBuilder.
int myInt = 25; stringBuilder myStringBuilder = new StringBuilder ("Votre total est"); myStringBuilder.ApendFormat ("{0: C}", myInt); console.writeLine (MyStringBuilder);Cet exemple affiche votre total est de 25,00 $ à la console.
(3) La méthode d'insertion ajoute une chaîne ou un objet à la position spécifiée dans le stringbuilder actuel. L'exemple suivant utilise cette méthode pour insérer un mot dans la sixième position du StringBuilder.
StringBuilDerMystringBuilder = new StringBuilder ("Hello World!"); MyStringBuilder.insert (6, "Beautiful"); Console.WriteLine (MyStringBuilder);Cet exemple affiche Hello Beautifulworld! à la console.
(4) Vous pouvez utiliser la méthode de suppression pour supprimer un nombre spécifié de caractères de la stringbuilder actuelle, et le processus de suppression commence à partir de l'index spécifié à partir de zéro. L'exemple suivant utilise la méthode de suppression pour raccourcir le stringbuilder.
StringBuilDerMystringBuilder = new StringBuilder ("Hello World!"); MystringBuilder.Remove (5,7); console.writeLine (mystringBuilder);Cet exemple affiche bonjour à la console.
(5) En utilisant la méthode de remplacement, vous pouvez remplacer les caractères de l'objet StringBuilder par un autre caractère spécifié. L'exemple suivant utilise la méthode de remplacement pour rechercher des objets StringBuilder, trouver tous les caractères de marque d'exclamation (!) Et les remplacer par des caractères de marque (?).
StringBuilderMystringBuilder = new StringBuilder ("Hello World!"); MystringBuilder.replace ('!', '?'); Console.writeLine (mystringBuilder);Cet exemple affiche Hello World? à la console
getSQlMapClientTemplate (). QueryForList ((new StringBuilder ()). APPEND (EntityClass.getName ()). APPEND (". SELECT"). TOSTRING (), null);Classe StringBuilder de Java
Si le programme a un besoin fréquent de chaînes supplémentaires, il n'est pas recommandé d'utiliser + pour la concaténation des chaînes. Vous pouvez envisager d'utiliser la classe java.lang.stringBuilder. Les objets générés en utilisant cette classe auront une longueur de 16 caractères par défaut. Vous pouvez également spécifier la longueur initiale par vous-même. Si les caractères attachés dépassent la longueur adaptable, l'objet StringBuilder augmente automatiquement la longueur pour s'adapter aux caractères attachés. S'il est nécessaire de fixer fréquemment des chaînes, l'utilisation de la classe StringBuilder peut améliorer considérablement l'efficacité. Le code suivant:
Code java
classe publique A SPEndStringTest {public static void main (String [] args) {String text = ""; Long Begintime = System.Currenttimemillis (); pour (int i = 0; i <10000; i ++) text = text + i; Long EndTime = System.CurrentTimemillis (); System.out.println ("Temps d'exécution:" + (EndTime-Begintime)); StringBuilder sb = new StringBuilder (""); Begintime = System.CurrentTimemillis (); pour (int i = 0; i <10000; i ++) sb.append (string.valueof (i)); endtime = system.currentTimemillis (); System.out.println ("Temps d'exécution:" + (EndTime-Begintime)); }} classe publique A SPEndStringTest {public static void main (String [] args) {String text = ""; Long Begintime = System.Currenttimemillis (); pour (int i = 0; i <10000; i ++) text = text + i; Long EndTime = System.CurrentTimemillis (); System.out.println ("Temps d'exécution:" + (EndTime-Begintime)); StringBuilder sb = new StringBuilder (""); Begintime = System.CurrentTimemillis (); pour (int i = 0; i <10000; i ++) sb.append (string.valueof (i)); endtime = system.currentTimemillis (); System.out.println ("Temps d'exécution:" + (EndTime-Begintime)); }}Ce code sortira:
Temps d'exécution: 3188
Temps d'exécution: 15
StringBuilder est une nouvelle classe qui a été ajoutée uniquement à J2SE1.5.0. Si la version précédente avait les mêmes exigences, java.util.stringbuffer sera utilisée. En fait, StringBuilder est conçu pour avoir la même interface de fonctionnement que StringBuffer. L'utilisation de StringBuilder dans une situation autonome sans thread aura une meilleure efficacité car StringBuilder ne gère pas les problèmes de synchronisation. StringBuffer gérera les problèmes de synchronisation. Si StringBuilder sera utilisé sous plusieurs threads, vous devez utiliser StringBuffer à la place pour permettre à l'objet de gérer les problèmes de synchronisation en soi.
La brève analyse ci-dessus de l'utilisation de StringBuilder dans Java est tout le contenu que je partage avec vous. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.