Échapper des caractères spéciaux en Java

Dans ce tutoriel nous allons découvrir comment échapper des caractères spéciaux en Java.
 
 
Comme vous savez probablement, une chaîne est une séquence de caractères.

Ces caractères peuvent être des lettres, des chiffres, des signes de ponctuation, etc. Lors de la création d’une chaîne, elle doit être placée entre guillemets:

public class Main {
   public static void main(String[] args) {
       String str = new String("Welcome to WayToLearnX!");
   }
}

Mais qu’est ce que nous devons faire si on doit créer une chaîne qui elle-même doit contenir des guillemets?

public class Main {
   public static void main(String[] args) {
       String str = new String("I use "Microfiber" to clean my house.");
   }
}

 
Sortie:

Main.java:3: error: ')' expected
       String str = new String("I use "Microfiber" to clean my house.");
                                       ^

Il parait que le compilateur se plaint de quelque chose!

Le compilateur interprète les guillemets d’une manière très spécifique, c’est-à-dire qu’il s’attend à ce que les chaînes y soient enveloppées. Et chaque fois que le compilateur voit ", il s’attend à ce que le guillemet soit suivi d’un deuxième guillemet, et que le contenu entre eux soit une chaîne.

Pour résoudre ce problème, on utilise le symbole spécial: \. Ce symbole est normalement appelé « antislash inverse ».

Essayons de changer notre code :

public class Main {
   public static void main(String[] args) {
       String str = new String("I use \"Microfiber\" to clean my house.");
	   System.out.println(str);
   }
}

 
Sortie:

I use "Microfiber" to clean my house.

 
 
Regardons un autre exemple:

public class Main {
   public static void main(String[] args) {
       String dir = new String ("Path C:\Users\doc");
       System.out.println(dir);
   }
}

 
Sortie:

Main.java:3: error: illegal escape character
       String dir = new String ("Path C:\Users\doc");
                                         ^

Encore une fois, le compilateur ne comprend pas quoi faire. Le compilateur s’attend à ce que antislash inverse « \ » soit suivie d’un certain caractère qui doit être échapper (comme un guillemet).

Mais, dans ce cas, « \ » est suivi d’une simple lettre. Le compilateur est donc confus. Donc qu’est ce que nous devons faire? Exactement la même chose qu’avant, nous ajoutons simplement un autre « \ » à notre « \ ».

public class Main {
   public static void main(String[] args) {
       String dir = new String ("Path C:\\Users\\doc");
       System.out.println(dir);
   }
}

 
Sortie:

Path C:\Users\doc

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *