CodeGym /Blog Java /Random-FR /Chaînes Java
John Squirrels
Niveau 41
San Francisco

Chaînes Java

Publié dans le groupe Random-FR

Qu’est-ce que la chaîne en Java ?

En programmation, les chaînes sont très couramment utilisées. Une chaîne en Java est un objet qui représente une séquence de caractères soutenue par un tableau de caractères. La classe String est immuable en Java et implémente les interfaces Comparable , Serialisable et CharSequence . Regardons un exemple pour comprendre.
String str = "string"
Ici str est la séquence de 6 caractères qui sont s, t, r, i, n et g.
Index du tableau de caractères 0 1 2 3 4 5
Valeur s t r je n g
Adresse mémoire 0x12824 0x12825 0x12826 0x12827 0x12828 0x12829
Comme nous le savons maintenant, le tableau est immuable, ce qui signifie qu'il ne peut pas être modifié après l'initialisation, donc la chaîne est également immuable.

Méthodes d'initialisation de chaîne

Il existe deux manières d'initialiser une chaîne.
  1. Littéraux de chaîne
  2. Nouvel opérateur

Chaîne littérale

La manière la plus simple et la plus directe de déclarer une chaîne est utilisée dans l’exemple ci-dessus. Chaque fois que le compilateur interprète une chaîne littérale, elle est toujours convertie en objet String.
String str = "string";

Nouvel opérateur

Nous pouvons également initialiser une chaîne en utilisant l'opérateur new.
String strNew = new String("using new operator");

Exemple

import java.io.*;
import java.lang.*;

class StringInitializationExample {
    public static void main(String[] args)
    {
        //declare java string with a string literal
        String str = "a string literal";

        System.out.println("String str = " + str);

        //declare string using new operator
        String strNew = new String("using new operator");

        System.out.println("String strNew = " + strNew);
    }
}

Sortir

String str = une chaîne littérale String strNew = utilisant un nouvel opérateur

Chaîne contre StringBuilder contre StringBuffer

Nous avons déjà discuté de ce qu'est la classe String, nous allons donc discuter des deux autres classes et de leur objectif, ainsi que de la raison pour laquelle Java a introduit ces deux classes alors qu'il a déjà la classe String pour nous. Il est préférable que vous alliez en haut et que vous révisiez la classe String afin de mieux la comprendre.

Raison

Comme nous savons que l'objet de classe String est immuable, donc chaque fois que nous devons modifier la chaîne, il ne mute jamais l'objet actuel mais la valeur modifiée est toujours stockée en tant que nouvel objet String. Ainsi, si nous devons modifier la valeur encore et encore, la mémoire sera également consommée. En gardant ce point, Java nous a fourni les classes StringBuilder et StringBuffer . Nous allons maintenant voir comment ils sont utiles dans ce scénario.

StringBuffer

String est une représentation d'une séquence de caractères immuable mais StringBuffer est une séquence de caractères mutable . Il utilise la plupart des méthodes de la classe String ainsi que quelques-unes de ses propres méthodes pour modifier le contenu et la séquence des caractères. Il est thread-safe car ses méthodes sont synchronisées pour être utilisées par plusieurs threads, conservant ainsi l'ordre série. Il implémente les interfaces Serialised , Appendable et CharSequence .

Syntaxe

StringBuffer str = new StringBuffer("Happy Java Programming");

Générateur de chaînes

StringBuilder représente également la séquence de caractères mutable. Il fournit une API compatible avec la classe StringBuffer mais elle n’est pas thread-safe. Ainsi, lorsque plusieurs threads ne sont pas impliqués, il est préférable d'utiliser la classe StringBuilder car elle est plus rapide que la classe StringBuffer dans de nombreux cas. Les méthodes clés de cette classe sont l'insertion et l'ajout. Il implémente également les interfaces Serialised , Appendable et CharSequence .

Syntaxe

StringBuilder str = new StringBuilder("Happy Java Programming");

Opérations sur les chaînes

En Java, nous pouvons effectuer des opérations sur les chaînes telles que la concaténation , la comparaison , le fractionnement , la recherche de la longueur , le remplacement des chaînes , etc.

Méthodes de chaîne

La classe Java String fournit diverses méthodes pour manipuler les chaînes ou effectuer les opérations décrites ci-dessus. Jetons un coup d'œil au tableau ci-dessous pour certaines de ces méthodes de chaîne.
Méthodes Description
Char charAt (index int) Il renvoie la valeur char à l'index fourni.
Concatération de chaîne (chaîne de caractères) Il renvoie une chaîne en combinant une chaîne spécifiée à la fin de cette chaîne.
booléen contient (CharSequence s) Il renvoie vrai si la chaîne contient une séquence spécifiée de valeurs de caractères.
booléen contentEquals (CharSequence cs) Il fait correspondre la chaîne avec la séquence de caractères fournie.
contenu booléenEquals (StringBuffer sb) Il fait correspondre la chaîne avec le tampon de chaîne fourni.
booléen se termine par (suffixe de chaîne) Il compare la fin de la chaîne avec le suffixe fourni.
booléen égal (Objet et Objet) Il fait correspondre la chaîne avec l'objet fourni.
booléen égal à IgnoreCase (String anotherString) Cette méthode compare deux chaînes sans prendre en compte la sensibilité à la casse.
format de chaîne statique (format de chaîne, arguments objet…) Il renvoie la chaîne formatée en utilisant le format fourni et les arguments.
octet getBytes() Cette méthode utilise le jeu de caractères par défaut de la plateforme pour coder la chaîne en une séquence d'octets, qui est ensuite stockée dans un nouveau tableau d'octets.
void getChars (int début, int fin, char[] dst, int dstBegin) Il copie les caractères de la chaîne dans le tableau de caractères de destination.
int hashCode() Il renvoie le code de hachage de la chaîne.
int indexDe(int ch) Il renvoie l'index du caractère spécifié qui apparaît en premier dans la chaîne.
int indexOf (int ch, int fromIndex) Il renvoie l'index du caractère spécifié qui apparaît en premier à partir de l'index fourni dans cette chaîne.
int indexDe(Chaîne chaîne) Il recherche la sous-chaîne fournie dans la chaîne et renvoie l'index à la première occurrence.
int indexOf (String str, int fromIndex) Il commence à rechercher la sous-chaîne fournie dans la chaîne à partir de l'index donné et renvoie l'index à la première occurrence.
Stagiaire en chaîne() Cette méthode renvoie la représentation canonique de la chaîne.
int dernierIndexOf(int ch) Cette méthode recherche le caractère fourni dans la chaîne et renvoie l'index de la dernière occurrence.
int lastIndexOf (int ch, int fromIndex) Cette méthode recherche en arrière à partir de l'index donné le caractère fourni dans la chaîne et renvoie l'index de la dernière occurrence.
int dernierIndexOf (String chaîne) Cette méthode recherche la sous-chaîne fournie dans la chaîne et renvoie l'index de la dernière occurrence.
int lastIndexOf (String str, int fromIndex) Cette méthode recherche en arrière à partir de l'index donné la sous-chaîne fournie dans la chaîne et renvoie l'index de la dernière occurrence.
longueur int() Cette méthode renvoie la longueur de la chaîne.
correspondances booléennes (regex de chaîne) Il renvoie vrai ou faux en faisant correspondre la chaîne avec l'expression régulière fournie.
Remplacement de chaîne (char oldValue, char newValue) Cette méthode renvoie une chaîne après avoir remplacé toutes les oldValue fournies par la newValue dans la chaîne.
String[] split (expression régulière de chaîne) Cette méthode recherche toutes les correspondances selon l'expression régulière fournie dans la chaîne et la divise autour de ces correspondances.
booléen startWith (préfixe de chaîne) Il renvoie vrai ou faux en testant le début de la chaîne avec le préfixe fourni.
Sous-chaîne de chaîne (int BeginIndex) Cette méthode renvoie une chaîne qui est la sous-chaîne de cette chaîne.
Chaîne versLowerCase() Il convertit tous les caractères de la chaîne en minuscules en utilisant les règles des paramètres régionaux par défaut.
Garniture de chaîne() Cette méthode supprime tous les espaces de début et de fin de la chaîne et la renvoie.
valeur de chaîne statiqueDe(char c) Il renvoie la représentation sous forme de chaîne de l'argument char.
Maintenant, à l’aide de quelques exemples, nous allons voir comment les utiliser.

Exemple

import java.io.*;
import java.lang.*;

class JavaStringsExample {
  public static void main(String[] args) {

    //create a string
    String greeting = "Hello! World";
    System.out.println("String: " + greeting);

    //getting the length of greeting object
    int length = greeting.length();
    System.out.println("Length: " + length);

    //create first string
    String first = "Java ";
    System.out.println("First String: " + first);

    //create second string
    String second = "Programming";
    System.out.println("Second String: " + second);

    //joining two strings
    String joinedString = first.concat(second);
    System.out.println("Joined String: " + joinedString);

    String jpf = "Java programming";
    String jps = "Java programming";
    String jpt = "Python programming";

    //compare jpf and jps strings
    boolean result1 = jpf.equals(jps);
    System.out.println("Strings jpf and jps are equal: " + result1);

    //compare jpf and jpt strings
    boolean result2 = jpf.equals(jpt);
    System.out.println("Strings jpf and jpt are equal: " + result2);

    //converting jpf to uppercase
    System.out.println("Upper case jpf: " + jpf.toUpperCase());

    //replacing g character with v in jpf
    System.out.println("Replacing g with v in jpf: "+jpf.replace("g", "v"));
  }
}

Sortir

Chaîne : Bonjour ! Longueur mondiale : 12 Première chaîne : Java Deuxième chaîne : Programmation Chaîne jointe : Programmation Java Les chaînes jpf et jps sont égales : true Les chaînes jpf et jpt sont égales : false Majuscules jpf : PROGRAMMATION JAVA Remplacement de g par v dans jpf : java provramminv

Conclusion

Nous espérons que vous comprenez désormais ce que sont les chaînes en Java, ses classes et comment implémenter ses différentes méthodes. N'hésitez pas à vous entraîner et à revenir chaque fois que vous avez besoin d'aide supplémentaire. Bon apprentissage!
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION