StringBuffer Java Avec des exemples de méthodes

StringBuffer en Java est une séquence de caractères mutables et sans thread, ce qui permet de créer des objets de chaîne modifiables en utilisant la classe StringBuffer.

Dans la chaîne post en Java, nous avons déjà vu que les objets String sont immuables, c’est-à-dire que les chaînes sont constantes; leurs valeurs ne peuvent pas être modifiées après leur création. En raison de cette propriété d’immuabilité lorsque vous utilisez une méthode de modification de chaîne comme la concaténation, une nouvelle chaîne est créée et renvoyée qui contient le résultat de l’opération. Cela peut conduire à la création de nombreux objets de chaîne intermédiaires si la chaîne est modifiée plusieurs fois, ce qui signifie que plus de mémoire est utilisée pour ces objets intermédiaires.

En utilisant l’objet StringBuffer, vous pouvez éviter ce problème de création de plusieurs objets car il est mutable. Sans surprise, les principales opérations sur un StringBuffer sont les méthodes d’ajout et d’insertion.

Table des matières
  1. Points importants sur Java StringBuffer
  2. Constructeurs de Java StringBuffer
  3. Exemples de méthodes Java StringBuffer

Points importants sur Java StringBuffer

Certains des points importants sur Java StringBuffer Classe StringBuffer.

  1. StringBuffer en Java fournit une grande partie des fonctionnalités de la classe String avec une déviation importante que StringBuffer est mutable.
  2. StringBuffer est également thread-safe, donc l’objet StringBuffer peut être utilisé en toute sécurité par plusieurs threads. Les méthodes de la classe StringBuffer sont synchronisées si nécessaire.
  3. Chaque tampon de chaîne est créé avec une capacité. Tant que la longueur de la séquence de caractères contenue dans le tampon de chaîne ne dépasse pas la capacité, il n’est pas nécessaire d’allouer un nouveau tableau de tampons internes. Si le tampon interne déborde, il est automatiquement agrandi.
  4. La classe Java 5 onward StringBuilder est également fournie, ce qui est équivalent à la classe StringBuffer mais conçu pour être utilisé par un seul thread. StringBuilder est plus rapide, car il n’effectue aucune synchronisation.

Constructeurs Java StringBuffer

Il existe quatre constructeurs dans la classe StringBuffer.

  1. StringBuffer() – Construit un tampon de chaîne sans caractères et d’une capacité initiale de 16 caractères.
    StringBuffer sb = new StringBuffer();
  2. StringBuffer(capacité int) – Construit un tampon de chaîne sans caractères et la capacité initiale spécifiée.
    StringBuffer sb = new StringBuffer(30);
  3. StringBuffer(CharSequence seq) – Construit un tampon de chaîne contenant les mêmes caractères que la CharSequence spécifiée.
    Ici CharSequence est une interface qui est implémentée par CharBuffer, Segment, String, StringBuffer, StringBuilder.
  4. StringBuffer(String str) – Construit un tampon de chaîne initialisé au contenu de la chaîne spécifiée.
    StringBuffer sb = new StringBuffer("Hello");

Exemples de méthode Java StringBuffer

méthode d’ajout

la méthode d’ajout est surchargée de manière à accepter des données de tout type. Cette méthode ajoute la représentation sous forme de chaîne du type de données donné au tampon existant. La méthode append ajoute toujours ces caractères à la fin du tampon.

public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.append(" "); sb.append("World").append(" ").append(123); System.out.println("Appended String- " + sb.toString()); }}

Output

Appended String- Hello World 123

Comme vous pouvez le voir dans l’exemple, l’ajout est utilisé avec String comme argument et aussi int comme argument car il est surchargé pour ces types de données. Vous pouvez également chaîner la méthode d’ajout comme dans cette ligne de code –

sb.append("World").append(" ").append(123)

En utilisant la méthode d’ajout, nous pouvons également vérifier l’instruction selon laquelle la chaîne est immuable où as StringBuffer est mutable. Dans l’exemple, un objet StringBuffer est créé, puis des valeurs y sont ajoutées et la référence renvoyée est stockée dans un autre StringBuffer.

De la même manière qu’une chaîne est créée et que des valeurs y sont ajoutées, la Chaîne renvoyée est également référencée par une autre chaîne.

En vérifiant l’égalité de deux références StringBuffer, vous pouvez voir que les deux sont identiques alors que pour la chaîne, les deux sont différents.

public class StringLiteral {public static void main(String args) {// With StringBufferSystem.out.println("StringBuffer...");StringBuffer sb = new StringBuffer("Hello");sb.append(" ");StringBuffer newsb = sb.append("World").append(" ").append(123);if (sb == newsb) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}// With StringSystem.out.println("String...");String str = "Hello";String newstr = str.concat(" ").concat("World").concat(" ").concat("123");if (str == newstr) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}}}

Sortie

StringBuffer...Reference is sameString...Reference is different

méthode d’insertion

la méthode d’insertion est surchargée de manière à accepter des données de tout type. Cette méthode est utilisée pour insérer la représentation sous forme de chaîne du type de données donné dans le tampon existant. La méthode insert ajoute les caractères à un point spécifié.

la méthode insert prend deux arguments d’abord un entier indiquant la position où les caractères doivent être insérés dans le tampon et le second argument est le texte à insérer.

public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Knp"); sb.insert(3, "Code"); System.out.println("String after insert- " + sb); }}

Sortie

String after insert- KnpCode

méthodes de longueur et de capacité

capacity() – Renvoie la capacité actuelle du tampon de chaîne.

length() – Renvoie le nombre de caractères dans cette séquence.

public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer(30); sb.append("Hello"); System.out.println("Capacity of StringBuffer- " + sb.capacity()); System.out.println("Length of StringBuffer- " + sb.length()); }}

Sortie

Capacity of StringBuffer- 30Length of StringBuffer- 5

Comme vous pouvez le voir, StringBuffer est créé avec une capacité de 30, donc la capacité est affichée comme 30, alors que le nombre de caractères dans le tampon est de 5, donc la longueur est affichée comme 5.

méthodes delete et deleteCharAt

  • delete(int start, int end) – Supprime les caractères d’une sous-chaîne de cette séquence. start qui indique que l’index de début est inclusif où as end qui indique que l’index de fin est exclusif.
  • deleteCharAt–int index) – Supprime le caractère à la position spécifiée dans cette séquence.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.delete(1, 4); System.out.println("After deletion- " + sb); System.out.println("Length of StringBuffer- " + sb.length()); }}

Sortie

After deletion- HoLength of StringBuffer- 2
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.deleteCharAt(4);System.out.println("After deletion- " + sb);System.out.println("Length of StringBuffer- " + sb.length());}}

Sortie

After deletion- HellLength of StringBuffer- 4

Méthode inverse Java StringBuffer

reverse() – Inverse le tampon de chaîne existant.

public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");System.out.println("Reversed- " + sb.reverse());}}

Output

Reversed- olleH

Méthode Java StringBuffer replace

replace(int start, int end, String str) – Remplace les caractères d’une sous-chaîne de cette séquence (de début à fin -1) par des caractères dans la chaîne spécifiée.

public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}

Sortie

String- Helena
  • Java StringBuilder Avec Des exemples de méthodes
  • Pourquoi la Chaîne est immuable en Java
  • Est-Ce que le Thread de chaîne Java Est sûr
  • Méthode Java String intern()
  • Méthode Java String split()
  • li>
  • Chaînes compactes en Java 9
  • Trouvez la Longueur de la Chaîne Sans Utiliser la Méthode length() en Java
  • Convertissez Char en Chaîne Et String en Char en Java

C’est tout pour le sujet Java StringBuffer Avec Des Exemples de Méthodes. Si quelque chose manque ou si vous avez quelque chose à partager sur le sujet, veuillez écrire un commentaire.

Vous pourriez aussi aimer

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.