String-Verarbeitung mit Apache Commons Lang 3

Stringverarbeitung mit Apache Commons Lang 3

1. Überblick

DieApache 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 vielem mehr.

Dieses Tutorial bietet nicht nur eine allgemeine Einführung in die Bibliothek, sondern zeigt auch Methoden der KlasseStringUtils, die zur Bearbeitung vonString-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

Sie finden die neueste Version dieser Bibliothekhere.

3. StringUtils

Die KlasseStringUtils bietet Methoden fürnull-sichere Operationen an Zeichenfolgen.

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

4. DiecontainsAny-Methode

Die MethodecontainsAny prüft, ob ein bestimmtesString ein Zeichen im angegebenen Zeichensatz enthält. Dieser Zeichensatz kann in Form vonString oderchar Varargs übergeben werden.

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

String string = "example.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. DiecontainsIgnoreCase-Methode

Die MethodecontainsIgnoreCase prüft, ob ein gegebenesString ein anderesString enthält, wobei die Groß- und Kleinschreibung nicht berücksichtigt wird.

Das folgende Codefragment überprüft, obString “example.com”“example” umfasst, wenn Groß- und Kleinbuchstaben ignoriert werden:

String string = "example.com";
boolean contained = StringUtils.containsIgnoreCase(string, "example");

assertTrue(contained);

6. DiecountMatches-Methode

Die MethodecounterMatches zählt, wie oft ein Zeichen oder eine Teilzeichenfolge in einem bestimmtenString. vorkommt

Das Folgende ist eine Demonstration dieser Methode, die bestätigt, dass‘w' viermal und“com” zweimal inString“welcome to www.example.com” vorkommt:

String string = "welcome to www.example.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

Die MethodenappendIfMissing undappendIfMissingIgnoreCase fügen ein Suffix an das Ende eines bestimmtenString an, wenn es nicht bereits mit einem der übergebenen Suffixe in Groß- und Kleinschreibung endet.

In ähnlicher Weise stellen die MethodenprependIfMissing undprependIfMissingIgnoreCase ein Präfix vor den Anfang eines bestimmtenString, wenn es nicht mit einem der übergebenen Präfixe beginnt.

Im folgenden Beispiel werden die MethodenappendIfMissing undprependIfMissing verwendet, um denString “example.com” ein Suffix und ein Präfix hinzuzufügen, ohne dass diese Affixe wiederholt werden:

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

assertEquals("example.com", stringWithSuffix);
assertEquals("www.example.com", stringWithPrefix);

8. Falländerungsmethode

Die KlasseStringdefiniert bereits Methoden zum Konvertieren aller Zeichen einesStringin Groß- oder Kleinbuchstaben. Dieser Unterabschnitt zeigt nur die Verwendung von Methoden, die den Fall vonString auf andere Weise ändern, einschließlichswapCase,capitalize unduncapitalize.

Die MethodeswapCasetauscht den Fall einesString, aus, indem Groß- und Kleinbuchstaben in Kleinbuchstaben geändert werden:

String originalString = "example.COM";
String swappedString = StringUtils.swapCase(originalString);

assertEquals("example.com", swappedString);

Die Methodecapitalize konvertiert das erste Zeichen eines bestimmtenString in Großbuchstaben, wobei alle verbleibenden Zeichen unverändert bleiben:

String originalString = "example";
String capitalizedString = StringUtils.capitalize(originalString);

assertEquals("example", capitalizedString);

Die Methodeuncapitalize konvertiert das erste Zeichen der angegebenenString in Kleinbuchstaben, wobei alle verbleibenden Zeichen unverändert bleiben:

String originalString = "example";
String uncapitalizedString = StringUtils.uncapitalize(originalString);

assertEquals("example", uncapitalizedString);

9. Umkehrmethode

Die KlasseStringUtils definiert zwei Methoden zum Umkehren von Zeichenfolgen:reverse undreverseDelimited. Die Methodereverse ordnet alle Zeichen vonString in umgekehrter Reihenfolge neu an, während die MethodereverseDelimited Gruppen von Zeichen neu anordnet, die durch ein angegebenes Trennzeichen getrennt sind.

Das folgende Codefragment kehrt die Zeichenfolge“example” um und validiert das Ergebnis:

String originalString = "example";
String reversedString = StringUtils.reverse(originalString);

assertEquals("gnudleab", reversedString);

Bei der MethodereverseDelimitedwerden Zeichen in Gruppen anstatt einzeln umgekehrt:

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

assertEquals("com.example.www", reversedString);

10. Dierotate()-Methode

Dierotate()-Methode verschiebt die Zeichen vonString kreisförmig um eine Anzahl von Positionen. Das folgende Codefragment verschiebt alle Zeichen der vier Positionen vonString “example”nach rechts und überprüft das Ergebnis:

String originalString = "example";
String rotatedString = StringUtils.rotate(originalString, 4);

assertEquals("dungbael", rotatedString);

11. Diedifference-Methode

Diedifference-Methode vergleicht zwei Zeichenfolgen und gibt den Rest der zweitenString, ab der Position zurück, an der sie sich von der ersten unterscheidet. Das folgende Codefragment vergleicht zweiStrings: “example Tutorials” und“example Courses” in beide Richtungen und validiert das Ergebnis:

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

assertEquals("Courses", diff1);
assertEquals("Tutorials", diff2);

12. Fazit

Dieses Tutorial führt in die String-Verarbeitung in Apache Commons Lang 3 ein und geht auf die Haupt-APIs ein, die wir aus der BibliotheksklasseStringUtilsverwenden können.

Wie immer ist die Implementierung aller oben angegebenen Beispiele und Codefragmente inthe GitHub project zu finden.