Même si les deux chaînes vous paraissent identiques, il se peut qu’elles ne le soient pas. Par exemple, ils peuvent avoir des espaces de début et de fin. L'ordinateur le « voit », mais pas nous. Java a une méthode spéciale trim() pour supprimer les espaces de fin et de début d'une chaîne. Dans cet article, nous allons expliquer comment utiliser la méthode Java string trim() dans un programme Java et fournir quelques exemples de code.

Signature de la méthode Java String trim()

La signature de la méthode trim() en Java est la suivante :
public String trim()
Comme vous pouvez le voir, il ne prend aucun paramètre et renvoie une valeur de chaîne. Il renvoie la copie de la chaîne d'origine, mais avec tous les espaces de début et de fin supprimés. Remarque importante : un espace est tout caractère dont le code ascii est inférieur ou égal à « U + 0020 ». Si notre String est une séquence de caractères vide, ou si les premier et dernier caractères de la séquence de caractères représentés par cet objet String ont des codes autres que des espaces (comme défini ci-dessus), alors une référence à cet objet String est renvoyée. Eh bien, si tous les caractères de notre chaîne sont des espaces, alors un objet String est renvoyé représentant une chaîne vide. S'il n'y a pas d'espaces au début et à la fin de la ligne, la méthode renverra la ligne elle-même inchangée.

Exemple de méthode Java String trim()

Ayons deux chaînes avec et sans espaces au début et à la fin de leur texte. Le texte sera le même pour les deux chaînes.
public class TrimDemo {
   public static void main(String[] args) {
//java string trim() method example

       String noSpacesString = "I am the Walrus";
       String withSpaceString = "    I am the Walrus ";

       //printing the both strings out to make sure they are different
       System.out.println(noSpacesString);
       System.out.println(withSpaceString);
       //let's print out two string comparisons. It's false
       //because they are different
       System.out.println(noSpacesString.equals(withSpaceString));
       //trim
       withSpaceString.trim();
       System.out.println(noSpacesString.equals(withSpaceString));
       System.out.println(noSpacesString);
       System.out.println(withSpaceString);
   }
}
Le résultat est :
Je suis le morse Je suis le morse false false Je suis le morse Je suis le morse
Attends quoi?? Il semble que la méthode Java string trim() ne fonctionne pas ! Les deux premières chaînes sont différentes, comme elles devraient l'être (la première n'a pas de marges, la seconde a trois espaces devant et un après le texte). Ensuite, nous avons comparé les deux lignes et imprimé le résultat. C'est évidemment faux car ces lignes sont différentes. Après cela, nous avons appliqué la méthode trim à la chaîne avec des espaces le long des bords et comparé à nouveau les chaînes... et pour une raison quelconque, nous avons encore eu faux, même si maintenant elles devraient être les mêmes ! Ensuite, juste au cas où nous avons décidé d'imprimer les lignes nous-mêmes, et si un miracle se produisait ? Hélas... Les lignes étaient différentes et demeurent toujours. Avez-vous déjà deviné quel est le problème ? Le fait est que les chaînes en Java sont des objets immuables. Ainsi, la méthode trim() renvoie non pas la chaîne d'origine, mais une nouvelle. Quoi qu'il en soit, nous devrions tester la méthode trim() ici, alors écrivons un autre programme. Ici, nous allons nommer une copie de la chaîne créée à la suite de la méthode trim() avec laquelle travailler. Vérifions également l'équivalence des deux chaînes.
public class TrimDemo2 {
   public static void main(String[] args) {
       String noSpacesString = "I am the Walrus";
       String withSpaceString = "    I am the Walrus ";
       String result = withSpaceString.trim();
       System.out.println(noSpacesString);
       System.out.println(result);
       System.out.println(noSpacesString.equals(result));
   }
}
Voici le résultat :
Je suis le morse, je suis le morse, vrai
Bingo ! Maintenant, cela fonctionne comme prévu. N'oubliez pas l'immuabilité des chaînes , c'est très important pour tout développeur Java.