samedi 27 avril 2024

[Java] Remplacer StringUtils par Java native 11 et 15

Chaque mise à jour majeure du langage de programmation Java a introduit de nombreuses nouvelles fonctionnalités et améliorations.

De nouvelles méthodes ont été introduites dans la classe String pour mieux répondre aux besoins du développement et améliorer l’efficacité de la programmation.

Examinons certaines de ces nouvelles méthodes et voyons comment elles peuvent remplacer le rôle de StringUtil.

D’après mes tests, je pense que ces méthodes sont disponibles dans les versions de Java ci-dessous :

Java 11 :

repeat(): renvoie une nouvelle chaîne, la chaîne est formée par la chaîne d’origine répétée le nombre de fois spécifié.
isBlank(): vérifie si la chaîne est une séquence de caractères blancs, c’est-à-dire de longueur 0 ou ne contenant que des espaces.
lines(): renvoie un flux de chaînes séparées par des lignes.
strip(): renvoie une nouvelle chaîne formée en supprimant les espaces en début et en fin de la chaîne d’origine.
stripLeading(): renvoie une nouvelle chaîne, la chaîne est la chaîne d’origine après avoir supprimé l’espace de début formé.
stripTrailing(): renvoie une nouvelle chaîne, la chaîne est la chaîne d’origine après avoir supprimé les espaces de fin.

Java 15 :

formatted(): formate la chaîne avec les arguments spécifiés et renvoie la chaîne formatée. translateEscapes(): convertit les séquences d’échappement Java en leurs caractères correspondants et renvoie la chaîne convertie.
transform(): Cette méthode applique une fonction à une chaîne et renvoie le résultat de la fonction. Voyons aussi quelques exemples d’utilisation de ces nouvelles méthodes.

  1. Répétition
String str = "toto";

String repeatedStr = StringUtils.repeat(str, 3);
System.out.println(repeatedStr);
String repeatedStr2 = str.repeat(5);
System.out.println(repeatedStr2);

//résultat
//totototototo
//
totototototototototo
  1. isBlank
String str1 = "";
String str2 = " ";
String str3 = "  \t  ";

System.out.println(StringUtils.isBlank(str1));
System.out.println(StringUtils.isBlank(str2));
System.out.println(StringUtils.isBlank(str3));

System.out.println(str1.isBlank());
System.out.println(str2.isBlank());
System.out.println(str3.isBlank());

//résultat
//true
//true
//true
//true
//true
//true
  1. lines
String str = "Hello\nWorld";

Arrays.stream(StringUtils.split(str, "\n")).forEach(System.out::println);

Stream<String> lines = str.lines();
lines.forEach(System.out::println);

//résultat
//Hello
//world
//Hello
//world
  1. strip
String str1 = "  abc   ";
String str2 = "\t def \n";

System.out.println(StringUtils.strip(str1));
System.out.println(StringUtils.strip(str2));

System.out.println(str1.strip());
System.out.println(str2.strip());

//résultat
//abc
//def
//abc
//def
  1. stripLeading/stripTrailing
String str1 = "  abc  ";
String str2 = "  def  ";

System.out.println(StringUtils.stripEnd(str1, null));
System.out.println(StringUtils.stripEnd(str2, null));

System.out.println(str1.stripTrailing());
System.out.println(str2.stripTrailing());

System.out.println(StringUtils.stripStart(str1, null));
System.out.println(StringUtils.stripStart(str2, null));

System.out.println(str1.stripLeading());
System.out.println(str2.stripLeading());

//résultat
//  abc
//  def
//  abc
//  def
//abc  
//def  
//abc  
//def 
  1. formatted
String str = "My name is %s, I'm %d years old.";
String formattedStr = str.formatted( "toto", 30);
System.out.println(formattedStr); //résultat //My name is toto
, I'm 30 years old.
  1. translateEscapes
String str = "Hello\\nWorld\\nJava";
String translatedStr = str.translateEscapes();
System.out.println(translatedStr);

//résultat
//Hello
//World
//Java
  1. transform
String str = "Hello World";
String result = str.transform(s -> s + " Java!");
System.out.println(result);

//résultat
//Hello World Java! 

Voilà, c’est tout.
N’hésitez pas à commenter si cela vous a aidé. 

Aucun commentaire:

Enregistrer un commentaire

to criticize, to improve