Mises à jour de l'API String dans Java 12

1. Introduction

Java 12 a ajouté quelques API utiles à la classe String . Dans ce tutoriel, nous explorerons ces nouvelles API avec des exemples.

2. retrait ()

La méthode indent () ajuste l'indentation de chaque ligne de la chaîne en fonction de l'argument qui lui est passé.

Lorsque indent () est appelé sur une chaîne, les actions suivantes sont effectuées:

  1. La chaîne est conceptuellement séparée en lignes à l'aide de lines () . lines () est l'API String introduite dans Java 11.
  2. Chaque ligne est ensuite ajustée en fonction de l' argument int n qui lui est passé puis suffixée d'un saut de ligne «\ n».
    1. Si n > 0, alors n espaces sont insérés au début de chaque ligne.
    2. Si n <0, jusqu'à n caractères d'espacement sont supprimés du début de chaque ligne. Dans le cas où une ligne donnée ne contient pas suffisamment d'espace blanc, tous les premiers caractères d'espacement sont supprimés.
    3. Si n == 0, alors la ligne reste inchangée. Cependant, les terminaisons de ligne sont toujours normalisées.
  3. Les lignes résultantes sont ensuite concaténées et renvoyées.

Par exemple:

@Test public void whenPositiveArgument_thenReturnIndentedString() { String multilineStr = "This is\na multiline\nstring."; String outputStr = " This is\n a multiline\n string.\n"; String postIndent = multilineStr.indent(3); assertThat(postIndent, equalTo(outputStr)); }

Nous pouvons également passer un entier négatif pour réduire l'indentation de la chaîne. Par exemple:

@Test public void whenNegativeArgument_thenReturnReducedIndentedString() { String multilineStr = " This is\n a multiline\n string."; String outputStr = " This is\n a multiline\n string.\n"; String postIndent = multilineStr.indent(-2); assertThat(postIndent, equalTo(outputStr)); }

3. transformer ()

Nous pouvons appliquer une fonction à cette chaîne en utilisant la méthode transform () . La fonction doit attendre un seul argument String et produire un résultat:

@Test public void whenTransformUsingLamda_thenReturnTransformedString() { String result = "hello".transform(input -> input + " world!"); assertThat(result, equalTo("hello world!")); }

Il n'est pas nécessaire que la sortie soit une chaîne. Par exemple:

@Test public void whenTransformUsingParseInt_thenReturnInt() { int result = "42".transform(Integer::parseInt); assertThat(result, equalTo(42)); }

4. Conclusion

Dans cet article, nous avons exploré les nouvelles API String dans Java 12. Comme d'habitude, des extraits de code peuvent être trouvés sur GitHub.