String API-updates in Java 12

1. Inleiding

Java 12 heeft een aantal handige API's toegevoegd aan het Draad klasse. In deze zelfstudie verkennen we deze nieuwe API's met voorbeelden.

2. inspringen()

De inspringen() method past de inspringing van elke regel van de string aan op basis van het argument dat eraan wordt doorgegeven.

Wanneer inspringen() wordt aangeroepen op een string, worden de volgende acties ondernomen:

  1. De string is conceptueel gescheiden in lijnen met behulp van lijnen (). lijnen () is de String API geïntroduceerd in Java 11.
  2. Elke regel wordt vervolgens aangepast op basis van de int argument n doorgegeven en vervolgens met een line feed "\ n" als achtervoegsel.
    1. Als n > 0, dan n Aan het begin van elke regel worden spaties ingevoegd.
    2. Als n<0, dan totn witruimtetekens worden aan het begin van elke regel verwijderd. Als een bepaalde regel niet voldoende witruimte bevat, worden alle voorloopspaties verwijderd.
    3. Als n == 0, dan blijft de regel ongewijzigd. Lijnafsluiters zijn echter nog steeds genormaliseerd.
  3. De resulterende regels worden vervolgens aaneengeschakeld en geretourneerd.

Bijvoorbeeld:

@Test public void whenPositiveArgument_thenReturnIndentedString () {String multilineStr = "Dit is \ na een multiline \ nstring."; String outputStr = "Dit is \ n een string met meerdere regels \ n. \ N"; String postIndent = multilineStr.indent (3); assertThat (postIndent, equalTo (outputStr)); }

We kunnen ook een negatief doorgeven int om de inspringing van de string te verkleinen. Bijvoorbeeld:

@Test public void whenNegativeArgument_thenReturnReducedIndentedString () {String multilineStr = "Dit is \ n een multiline \ n string."; String outputStr = "Dit is \ n een string met meerdere regels \ n. \ N"; String postIndent = multilineStr.indent (-2); assertThat (postIndent, equalTo (outputStr)); }

3. transformeren()

We kunnen een functie toepassen op dit tekenreeks met behulp van de transformeren() methode. De functie mag er een verwachten Draad argument en produceer een resultaat:

@Test openbare leegte whenTransformUsingLamda_thenReturnTransformedString () {String resultaat = "hallo" .transform (invoer -> invoer + "wereld!"); assertThat (resultaat, gelijk aan ("hallo wereld!")); }

Het is niet nodig dat de output een string moet zijn. Bijvoorbeeld:

@Test openbare leegte whenTransformUsingParseInt_thenReturnInt () {int resultaat = "42" .transform (geheel getal :: parseInt); assertThat (resultaat, gelijk aan (42)); }

4. Conclusie

In dit artikel hebben we het nieuwe onderzocht Draad API's in Java 12. Zoals gewoonlijk zijn codefragmenten te vinden op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found