Ajouts d’API Java 11 String

Ajouts d'API Java 11 String

1. introduction

Java 11 a ajouté quelques API utiles auxString class couramment utilisés. Dans ce tutoriel, nous allons explorer et utiliser ces nouvelles API.

2. repeat()

Comme son nom l'indique, la méthode d'instancerepeat() répète le contenu de la chaîne.

It returns a string whose value is the concatenation of the string repeated n times, where n is passed as a parameter:

@Test
public void whenRepeatStringTwice_thenGetStringTwice() {
    String output = "La ".repeat(2) + "Land";

    is(output).equals("La La Land");
}

De plus,repeat() renvoie une chaîne vide si la chaîne est vide ou si le nombre est égal à zéro.

3. strip () *

The strip() instance method returns a string with all leading and trailing whitespaces removed:

@Test
public void whenStripString_thenReturnStringWithoutWhitespaces() {
    is("\n\t  hello   \u2005".strip()).equals("hello");
}

Java 11 a également ajouté les méthodesstripLeading() etstripTrailing(), qui gèrent respectivement les espaces de début et de fin.

3.1. Différence entrestrip() ettrim()

strip*() détermine si le caractère est un espace ou non basé surCharacter.isWhitespace(). En d'autres termes,it is aware of Unicode whitespace characters.

Ceci est différent detrim(), qui définit l'espace comme tout caractère inférieur ou égal au caractère d'espace Unicode (U + 0020). Si nous utilisonstrim() dans l'exemple précédent, nous obtiendrons un résultat différent:

@Test
public void whenTrimAdvanceString_thenReturnStringWithWhitespaces() {
    is("\n\t  hello   \u2005".trim()).equals("hello   \u2005");
}

Remarquez commenttrim() a pu couper l'espace blanc de début, mais il n'a pas coupé l'espace blanc de fin. En effet,trim() n’est pas conscient des caractères d’espace Unicode et ne considère donc pas ‘ ′ comme un caractère d’espace.

4. isBlank()

The isBlank() instance method returns true if the string is empty or contains only whitespace. Otherwise, it returns false:

@Test
public void whenBlankString_thenReturnTrue() {
    assertTrue("\n\t\u2005  ".isBlank());
}

De même, la méthodeisBlank() est consciente des caractères d'espacement Unicode, tout commestrip().

5. lines()

The lines() instance method returns a Stream of lines extracted from the string, separated by line terminators:

@Test
public void whenMultilineString_thenReturnNonEmptyLineCount() {
    String multilineStr = "This is\n \n a multiline\n string.";

    long lineCount = multilineStr.lines()
      .filter(String::isBlank)
      .count();

    is(lineCount).equals(3L);
}

Une terminaison de ligne est l'une des suivantes:“ ”,“ ”, ou“ ”.

Le flux contient des lignes dans l'ordre dans lequel elles apparaissent. La terminaison de ligne est supprimée de chaque ligne.

Cette méthode doit être préférée àsplit(), car elle offre de meilleures performances pour la coupure d'une entrée multiligne.

6. Conclusion

Dans cet article rapide, nous avons exploré les nouvelles API de chaîne dans Java 11.

Enfin, des extraits de code peuvent être trouvésover on GitHub.