Es gibt Variationen der Split-Methode "StringUtils" von Commons Lang von Apache Commons. Es gibt viele, aber einige davon sind schwer zu verstehen und Erklärungen und Beispiele für API-Dokumentation Selbst wenn ich es gelesen oder die Informationen im Internet durchsucht habe, konnte ich es nicht gut verstehen, also habe ich den Unterschied überprüft.
Neueste 3.7 im Moment
1-1. split(String str)
Teilen Sie die Zeichenfolge str
mit Leerzeichen (Tabulatoren, Zeilenumbrüche, Leerzeichen). Leerzeichen in voller Breite werden auch als Leerzeichen erkannt.
1-2. split(String str, char separatorChar) Teilen Sie die Zeichenfolge "str" mit dem Trennzeichen "separatorChar". Es unterscheidet sich von 1-1 darin, dass das Trennzeichen explizit angegeben wird.
1-3. split(String str, String separatorChars) Teilen Sie die Zeichenfolge "str" durch die Trennzeichengruppe "separatorChars". Es unterscheidet sich von 1-2. Darin können ** mehrere Trennzeichen angegeben werden **. Auf den ersten Blick scheint es, dass ein Zeichenfolgen-Trennzeichen verwendet werden kann, aber es ist schwer zu verstehen, dass ** Trennzeichen ein Zeichen sind ** und mehrere Typen angegeben werden können. Da es sich bei dem Typ um eine Zeichenfolge handelt, kann es leicht zu Missverständnissen kommen. Da das benachbarte Trennzeichen als ein Trennzeichen behandelt wird, sieht es häufig so aus, als könnte es durch eine Zeichenfolge getrennt werden, und manchmal funktioniert es nicht. Sei vorsichtig, wenn du süchtig danach bist. Zum Beispiel
python
StringUtils.split("xxxxxandyyyyyandzzzzz", "and");
Im Falle von,
python
{"xxxxx", "yyyyy", "zzzzz"}
Wird zurückgegeben, also denke ich: "Oh! Du kannst dich mit" und "richtig trennen. In Ordnung!"
python
StringUtils.split("xxaxxandyynyyandzzdzz", "and");
Im Falle von,
python
{"xxaxx", "yynyy", "zzdzz"}
Ich denke, das wird zurückgegeben, aber in Wirklichkeit ist das Ergebnis
python
{"xx", "xx", "yy", "yy", "zz", "zz"}
Dann "Huh !?" Wenn Sie eine Zeichenfolge als Trennzeichen verwenden möchten, verwenden Sie "splitByWholeSeparator ()", das später beschrieben wird.
1-4. split(String str, String separatorChars, int max)
Zusätzlich zu 1-3. Können Sie die maximale Anzahl von Unterteilungen mit max
angeben. Selbst wenn die Anzahl der Begrenzer größer als "max" ist, kann sie nicht auf mehr als "max" begrenzt werden. Wenn Sie beispielsweise 2 für "max" angeben, beträgt die maximale Anzahl von Elementen im zurückgegebenen Array 2, unabhängig davon, wie viele getrennt sind. Wenn für "max" 0 oder minus angegeben ist, wird dies als unendliche Zahl behandelt.
2-1. splitByWholeSeparator(String str, String separator) Teilen Sie die Zeichenfolge "str" durch die Trennzeichenfolge "separator". Dies ist die Methode, die verwendet werden soll, wenn Sie mit einer Zeichenfolge trennen möchten. Wenn dies der Fall ist
python
StringUtils.splitByWholeSeparator("xxaxxandyynyyandzzdzz", "and");
Im Falle von
python
{"xxaxx", "yynyy", "zzdzz"}
Wird zurückgegeben.
2-2. splitByWholeSeparator(String str, String separator, int max) Zusätzlich zu 2-1. Eine Version, in der die maximale Anzahl von Unterteilungen "max" angegeben werden kann.
3-1. splitPreserveAllTokens(String str) Bei den bisher aufgetretenen Methoden werden benachbarte Trennzeichen als ein Trennzeichen betrachtet. Bei diesem System wird jedoch ein leeres Token zurückgegeben, wenn die Trennzeichen benachbart sind. Mit anderen Worten
python
StringUtils.split("a b");
Im Falle von,
python
{"a", "b"}
Ist zurück gekommen,
python
StringUtils.splitPreserveAllTokens("a b");
Im Falle von,
python
{"a", "", "b"}
Ist zurück gekommen. Es kann bei der Verarbeitung von durch Kommas und Tabulatoren getrennten Daten verwendet werden.
3-2. splitPreserveAllTokens(String str, char separatorChar) Alle Tokens-Version von 1-2 beibehalten.
3-3. splitPreserveAllTokens(String str, String separatorChars) Alle Tokens-Version von 1-3 beibehalten.
3-4. splitPreserveAllTokens(String str, String separatorChars, int max) Alle Tokens-Version von 1-4 beibehalten.
4-1. splitByWholeSeparatorPreserveAllTokens(String str, String separator) Methodenname ist lang! Kurz gesagt, es handelt sich um eine Kombination aus 2 und 3 Systemen. Wenn eine Zeichenfolge für das Trennzeichen verwendet werden kann und die Trennzeichen benachbart sind, wird ein leeres Token zurückgegeben.
4-2. splitByWholeSeparatorPreserveAllTokens(String str, String separator, int max) Die "max" angegebene Version davon. Die Überschrift wird immer länger. Jugem Jugem ...
5-1. splitByCharacterType(String str)
Eine Aufteilungsmethode mit einer etwas anderen Haarfarbe, die den Zeichentyp bestimmt und aufeinanderfolgende Zeichen desselben Typs in einen Token unterteilt. Die Beurteilung des Zeichentyps lautet [getType ()](https://docs.oracle.com/javase/jp/10/docs/api/java/lang/Character.html#getType (int) von java.lang.Character
)). Die Liste der verwandten Elemente im API-Dokument dieser getType () -Methode beschreibt die Kategorisierung, aber es gibt so viele Typen!
Beispiel
StringUtils.splitByCharacterType("ABCabc 123");
Ausführungsergebnis
{"ABC", "abc", " ", "123", "Ah"}
5-2. splitByCharacterTypeCamelCase(String str) Die Teilungsregel ist fast dieselbe wie bei 5-1. Wenn jedoch die oberen und unteren Buchstaben nach den oberen und unteren Buchstaben stehen, gehören die oberen und unteren Buchstaben zum Token in den unteren und unteren Buchstaben. Zum Aufteilen von Kamelkisten?
Beispiel
StringUtils.splitByCharacterTypeCamelCase("ABCabc 123");
Ausführungsergebnis
{"AB", "Cabc", " ", "123", "Ah"}
Recommended Posts