Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
Chaînes de caractères Java
Dans ce tutoriel, nous allons apprendre les chaînes de caractères en Java, comment les créer et les diverses méthodes de la classe String avec des exemples.
En Java, une chaîne est une séquence de caractères. Par exemple, "hello" est une chaîne contenant une séquence de caractères 'h', 'e', 'l', 'l' et 'o'.
Nous utilisons des guillemets doubles pour représenter une chaîne en Java. Par exemple,
// créer une chaîne
String type = "Java programming";
Ici, nous avons créé une variable de chaîne nommée type. La variable est initialisée avec la chaîne Java Programming.
Exemple : Créer une chaîne en Java
class Main {
public static void main(String[] args) {
// créer des chaînes
String first = "Java";
String second = "Python";
String third = "JavaScript";
// afficher les chaînes
System.out.println(first); // affiche Java
System.out.println(second); // affiche Python
System.out.println(third); // affiche JavaScript
}
}
Dans l'exemple ci-dessus, nous avons créé trois chaînes nommées first, second et third. Ici, nous créons directement des chaînes comme des types primitifs.
Cependant, il existe une autre façon de créer des chaînes Java (en utilisant le mot-clé new). Nous en apprendrons plus tard dans ce tutoriel.
Note : Les chaînes en Java ne sont pas des types primitifs (comme int, char, etc). Au lieu de cela, toutes les chaînes sont des objets d'une classe prédéfinie nommée String.
Et toutes les variables de chaîne sont des instances de la classe String.
Opérations sur les chaînes Java
La classe String Java fournit diverses méthodes pour effectuer différentes opérations sur les chaînes. Nous examinerons certaines des opérations de chaîne couramment utilisées.
1. Obtenir la longueur d'une chaîne
Pour trouver la longueur d'une chaîne, nous utilisons la méthode length() de la classe String. Par exemple,
class Main {
public static void main(String[] args) {
// créer une chaîne
String greet = "Hello! World";
System.out.println("String: " + greet);
// obtenir la longueur de greet
int length = greet.length();
System.out.println("Length: " + length);
}
}
Sortie
String: Hello! World Length: 12
Dans l'exemple ci-dessus, la méthode length() calcule le nombre total de caractères dans la chaîne et la retourne. Pour en savoir plus, visitez Java String length().
2. Joindre deux chaînes Java
Nous pouvons joindre deux chaînes en Java en utilisant la méthode concat(). Par exemple,
class Main {
public static void main(String[] args) {
// créer la première chaîne
String first = "Java ";
System.out.println("First String: " + first);
// créer la seconde chaîne
String second = "Programming";
System.out.println("Second String: " + second);
// joindre deux chaînes
String joinedString = first.concat(second);
System.out.println("Joined String: " + joinedString);
}
}
Sortie
First String: Java Second String: Programming Joined String: Java Programming
Dans l'exemple ci-dessus, nous avons créé deux chaînes nommées first et second. Remarquez l'instruction,
String joinedString = first.concat(second);
Ici, la méthode concat() joint la chaîne second à la chaîne first et l'assigne à la variable joinedString.
Nous pouvons aussi joindre deux chaînes en utilisant l'opérateur + en Java. Pour en savoir plus, visitez Java String concat().
3. Comparer deux chaînes
En Java, nous pouvons faire des comparaisons entre deux chaînes en utilisant la méthode equals(). Par exemple,
class Main {
public static void main(String[] args) {
// créer 3 chaînes
String first = "java programming";
String second = "java programming";
String third = "python programming";
// comparer first et second
boolean result1 = first.equals(second);
System.out.println("Strings first and second are equal: " + result1);
// comparer first et third
boolean result2 = first.equals(third);
System.out.println("Strings first and third are equal: " + result2);
}
}
Sortie
Strings first and second are equal: true Strings first and third are equal: false
Dans l'exemple ci-dessus, nous avons créé 3 chaînes nommées first, second et third. Ici, nous utilisons la méthode equals() pour vérifier si une chaîne est égale à une autre.
La méthode equals() vérifie le contenu des chaînes lors de la comparaison. Pour en savoir plus, visitez Java String equals().
Note : Nous pouvons aussi comparer deux chaînes en utilisant l'opérateur == en Java. Cependant, cette approche est différente de la méthode equals(). Pour en savoir plus, visitez Java String == vs equals().
Caractère d'échappement dans les chaînes Java
Le caractère d'échappement est utilisé pour échapper certains caractères présents à l'intérieur d'une chaîne.
Supposons que nous ayons besoin d'inclure des guillemets doubles à l'intérieur d'une chaîne.
// inclure guillemet double
String example = "This is the "String" class";
Puisque les chaînes sont représentées par des guillemets doubles, le compilateur traitera "This is the " comme la chaîne. Donc, le code ci-dessus causera une erreur.
Pour résoudre ce problème, nous utilisons le caractère d'échappement \ en Java. Par exemple,
// utiliser le caractère d'échappement
String example = "This is the \"String\" class.";
Maintenant, les caractères d'échappement disent au compilateur d'échapper les guillemets doubles et de lire tout le texte.
Les chaînes Java sont immuables
En Java, les chaînes sont immuables. Cela signifie qu'une fois que nous créons une chaîne, nous ne pouvons pas la changer.
Pour le comprendre plus profondément, considérons un exemple :
// créer une chaîne
String example = "Hello! ";
Ici, nous avons créé une variable de chaîne nommée example. La variable contient la chaîne "Hello! ".
Supposons maintenant que nous voulons changer la chaîne.
// ajouter une autre chaîne "World"
// à la chaîne précédente
example = example.concat(" World");
Ici, nous utilisons la méthode concat() pour ajouter une autre chaîne World à la chaîne précédente.
Il semble que nous puissions changer la valeur de la chaîne précédente. Cependant, ce n'est pas true.
Voyons ce qui s'est passé ici :
- La JVM prend la première chaîne "Hello! "
- crée une nouvelle chaîne en ajoutant "World" à la première chaîne
- assigne la nouvelle chaîne "Hello! World" à la variable example
- la première chaîne "Hello! " reste inchangée
Création de chaînes en utilisant le mot-clé new
Jusqu'à présent, nous avons créé des chaînes comme des types primitifs en Java.
Puisque les chaînes en Java sont des objets, nous pouvons créer des chaînes en utilisant le mot-clé new également. Par exemple,
// créer une chaîne en utilisant le mot-clé new
String name = new String("Java String");
Dans l'exemple ci-dessus, nous avons créé une chaîne name en utilisant le mot-clé new.
Ici, quand nous créons un objet chaîne, le constructeur String() est invoqué. Pour en savoir plus sur les constructeurs, visitez Constructeur Java.
Note : La classe String fournit divers autres constructeurs pour créer des chaînes. Pour en savoir plus, visitez Java String (documentation officielle Java).
Exemple : Créer des chaînes Java en utilisant le mot-clé new
class Main {
public static void main(String[] args) {
// créer une chaîne en utilisant new
String name = new String("Java String");
System.out.println(name); // affiche Java String
}
}
Créer une chaîne avec littéraux vs mot-clé new
Maintenant que nous savons comment les chaînes sont créées en utilisant les littéraux de chaîne et le mot-clé new, voyons quelle est la différence majeure entre eux.
En Java, la JVM maintient un pool de chaînes pour stocker toutes ses chaînes en mémoire. Le pool de chaînes aide à réutiliser les chaînes.
1. Lors de la création de chaînes en utilisant des littéraux de chaîne,
String example = "Java";
Ici, nous fournissons directement la valeur de la chaîne (Java). Donc, le compilateur vérifie d'abord le pool de chaînes pour voir si la chaîne existe déjà.
- Si la chaîne existe déjà, la nouvelle chaîne n'est pas créée. Au lieu de cela, la nouvelle référence, example pointe vers la chaîne déjà existante (
Java). - Si la chaîne n'existe pas, la nouvelle chaîne (
Java) est créée.
2. Lors de la création de chaînes en utilisant le mot-clé new,
String example = new String("Java");
Ici, la valeur de la chaîne n'est pas fournie directement. Donc, une nouvelle chaîne "Java" est créée même si "Java" est déjà présente dans le pool de mémoire.
Méthodes de la classe String Java
En plus de celles mentionnées ci-dessus, il existe diverses méthodes de chaîne en Java. En voici quelques-unes :
| Méthodes | Description |
|---|---|
| contains() | vérifie si la chaîne contient une sous-chaîne |
| substring() | retourne la sous-chaîne de la chaîne |
| join() | joint les chaînes données en utilisant le délimiteur |
| replace() | remplace le caractère ancien spécifié par le nouveau caractère spécifié |
| replaceAll() | remplace toutes les sous-chaînes correspondant au motif regex |
| replaceFirst() | remplace la première sous-chaîne correspondante |
| charAt() | retourne le caractère présent à l'emplacement spécifié |
| getBytes() | convertit la chaîne en tableau d'octets |
| indexOf() | retourne la position du caractère spécifié dans la chaîne |
| compareTo() | compare deux chaînes dans l'ordre du dictionnaire |
| compareToIgnoreCase() | compare deux chaînes en ignorant les différences de casse |
| trim() | supprime les espaces blancs en début et fin |
| format() | retourne une chaîne formatée |
| split() | divise la chaîne en tableau de chaînes |
| toLowerCase() | convertit la chaîne en minuscules |
| toUpperCase() | convertit la chaîne en majuscules |
| valueOf() | retourne la représentation en chaîne de l'argument spécifié |
| toCharArray() | convertit la chaîne en tableau char |
| matches() | vérifie si la chaîne correspond au regex donné |
| startsWith() | vérifie si la chaîne commence par la chaîne donnée |
| endsWith() | vérifie si la chaîne se termine par la chaîne donnée |
| isEmpty() | vérifie si une chaîne est vide ou non |
| intern() | retourne la représentation canonique de la chaîne |
| contentEquals() | vérifie si la chaîne est égale à charSequence |
| hashCode() | retourne un code de hachage pour la chaîne |
| subSequence() | retourne une sous-séquence de la chaîne |
Java
- Maîtriser les chaînes C# : Fondamentaux, opérations et techniques avancées
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les représentations en chaînes dans les enums Java
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Comprendre Java String.charAt() : Syntaxe, type de retour, exceptions et exemple pratique
- Maîtriser Java String.endsWith() : Comment vérifier les suffixes de chaînes avec exemples
- Maîtriser le remplacement de chaînes Java : replace(), replaceAll() et replaceFirst() expliqués