Zeichenfolgenverarbeitung mit Apache Commons Lang 3

1. Übersicht

Die Apache Commons Lang 3-Bibliothek bietet Unterstützung für die Manipulation von Kernklassen der Java-APIs. Diese Unterstützung umfasst Methoden zum Behandeln von Zeichenfolgen, Zahlen, Datumsangaben, Parallelität, Objektreflexion und mehr.

Dieses Tutorial bietet nicht nur eine allgemeine Einführung in die Bibliothek, sondern zeigt auch Methoden der StringUtils- Klasse, die zur Bearbeitung von String- Instanzen verwendet wird.

2. Maven-Abhängigkeit

Um die Commons Lang 3-Bibliothek zu verwenden, ziehen Sie sie einfach mit der folgenden Abhängigkeit aus dem zentralen Maven-Repository:

 org.apache.commons commons-lang3 3.5 

Die neueste Version dieser Bibliothek finden Sie hier.

3. StringUtils

Die StringUtils- Klasse bietet Methoden für null- sichere Operationen an Zeichenfolgen.

Für viele Methoden dieser Klasse sind entsprechende Methoden in der Klasse java.lang.String definiert , die nicht null- sicher sind. Dieser Abschnitt konzentriert sich jedoch stattdessen auf mehrere Methoden, die keine Entsprechungen in der String- Klasse haben.

4. Die enthält jede Methode

Die containsAny Methode überprüft , ob ein gegebener String enthält alle Zeichen in der vorgegebenen Menge von Zeichen. Dieser Satz von Zeichen kann in Form eines übergeben wird String oder char varargs.

Das folgende Codefragment demonstriert die Verwendung von zwei überladenen Varianten dieser Methode mit Ergebnisüberprüfung:

String string = "baeldung.com"; boolean contained1 = StringUtils.containsAny(string, 'a', 'b', 'c'); boolean contained2 = StringUtils.containsAny(string, 'x', 'y', 'z'); boolean contained3 = StringUtils.containsAny(string, "abc"); boolean contained4 = StringUtils.containsAny(string, "xyz"); assertTrue(contained1); assertFalse(contained2); assertTrue(contained3); assertFalse(contained4);

5. Die enthältIgnoreCase- Methode

Die containsIgnoreCase Methode überprüft , ob ein gegebener String enthält eine weiteren String in einem Fall unempfindlich Weise.

Das folgende Codefragment prüft , dass der String „baeldung.com“ umfasst „BAELDUNG“ als Groß- und Kleinschreibung wird ignoriert:

String string = "baeldung.com"; boolean contained = StringUtils.containsIgnoreCase(string, "BAELDUNG"); assertTrue(contained);

6. Die countMatches- Methode

Die counterMatches- Methode zählt, wie oft ein Zeichen oder eine Teilzeichenfolge in einem bestimmten String vorkommt.

Im Folgenden ist eine Demonstration dieser Methode, die bestätigt , dass ‚w‘ erscheint viermal und „com“ tut zweimal im String „welcome to www.baeldung.com“ :

String string = "welcome to www.baeldung.com"; int charNum = StringUtils.countMatches(string, 'w'); int stringNum = StringUtils.countMatches(string, "com"); assertEquals(4, charNum); assertEquals(2, stringNum);

7. Methode zum Anhängen und Voranstellen

Das appendIfMissing und appendIfMissingIgnoreCase Methoden append ein Suffix an das Ende eines bestimmten String , wenn er nicht bereits mit einem der jeweils in einem Fall , empfindlich und unempfindlich Weise gebene in Suffixe endet.

Ähnlich sind die prependIfMissing und prependIfMissingIgnoreCase prepend Methoden ein Präfix zu Beginn eines bestimmten String , wenn es nicht mit einem der übergebenen in Präfixe beginnt.

Im folgenden Beispiel werden die Methoden appendIfMissing und prependIfMissing verwendet, um der Zeichenfolge „baeldung.com“ ein Suffix und ein Präfix hinzuzufügen, ohne dass diese Anhänge wiederholt werden:

String string = "baeldung.com"; String stringWithSuffix = StringUtils.appendIfMissing(string, ".com"); String stringWithPrefix = StringUtils.prependIfMissing(string, "www."); assertEquals("baeldung.com", stringWithSuffix); assertEquals("www.baeldung.com", stringWithPrefix);

8. Falländerungsmethode

Die String- Klasse definiert bereits Methoden zum Konvertieren aller Zeichen eines Strings in Groß- oder Kleinbuchstaben. Dieser Abschnitt zeigt nur die Verwendung von Methoden , um den Fall einer sich ändernden String auf andere Weise, einschließlich swapCase , Kapital und uncapitalize .

Die swapCase- Methode tauscht die Groß- und Kleinschreibung eines Strings aus und ändert Groß- und Kleinbuchstaben in Kleinbuchstaben:

String originalString = "baeldung.COM"; String swappedString = StringUtils.swapCase(originalString); assertEquals("BAELDUNG.com", swappedString);

Die Großschreibungsmethode konvertiert das erste Zeichen eines bestimmten Strings in Großbuchstaben, wobei alle verbleibenden Zeichen unverändert bleiben:

String originalString = "baeldung"; String capitalizedString = StringUtils.capitalize(originalString); assertEquals("Baeldung", capitalizedString);

Die uncapitalize Verfahren wandelt das erste Zeichen des gegebenen String in Kleinbuchstaben, so dass alle übrigen Zeichen unverändert:

String originalString = "Baeldung"; String uncapitalizedString = StringUtils.uncapitalize(originalString); assertEquals("baeldung", uncapitalizedString);

9. Umkehrmethode

Die StringUtils- Klasse definiert zwei Methoden zum Umkehren von Zeichenfolgen: reverse und reverseDelimited . Das umgekehrte Verfahren ordnet alle Zeichen eines String in der umgekehrten Reihenfolge, während die reverseDelimited Verfahren Nachbestellungen Gruppen von Zeichen, die von einem festgelegten Begrenzungszeichen getrennt.

Das folgende Codefragment kehrt die Zeichenfolge "baeldung" um und validiert das Ergebnis:

String originalString = "baeldung"; String reversedString = StringUtils.reverse(originalString); assertEquals("gnudleab", reversedString);

Bei der Methode reverseDelimited werden Zeichen nicht einzeln, sondern in Gruppen umgekehrt:

String originalString = "www.baeldung.com"; String reversedString = StringUtils.reverseDelimited(originalString, '.'); assertEquals("com.baeldung.www", reversedString);

10. Die rotate () -Methode

Die rotate () -Methode verschiebt die Zeichen eines Strings kreisförmig um mehrere Positionen. Das folgende Codefragment verschiebt alle Zeichen des Strings "baeldung" um vier Positionen nach rechts und überprüft das Ergebnis:

String originalString = "baeldung"; String rotatedString = StringUtils.rotate(originalString, 4); assertEquals("dungbael", rotatedString);

11. Der Unterschied Method

Die Differenzmethode vergleicht zwei Zeichenfolgen und gibt den Rest der zweiten Zeichenfolge zurück , beginnend an der Position, an der sie sich von der ersten unterscheidet. Das folgende Codefragment vergleicht zwei Zeichenfolgen: "Baeldung Tutorials" und "Baeldung Courses" in beide Richtungen und validiert das Ergebnis:

String tutorials = "Baeldung Tutorials"; String courses = "Baeldung Courses"; String diff1 = StringUtils.difference(tutorials, courses); String diff2 = StringUtils.difference(courses, tutorials); assertEquals("Courses", diff1); assertEquals("Tutorials", diff2);

12. Schlussfolgerung

Dieses Tutorial führt in die String-Verarbeitung in Apache Commons Lang 3 ein und geht auf die wichtigsten APIs ein, die wir aus der StringUtils- Bibliotheksklasse heraus verwenden können.

Wie immer finden Sie die Implementierung aller oben angegebenen Beispiele und Codefragmente im GitHub-Projekt.