2010-12-14 20 views
1

Voraussetzung ist, Strings in Java zu spalten, so dass die folgendenSplitting-String mit Zeichenfolge als Trennzeichen

würde "dieses # {s} # {s} a # {s} Zeichenfolge" in der folgenden Array

[ "this", "ist", "a", "string"]

Wie Sie die Zeichenfolge "# {s}" das Trennzeichen ist hier sehen können.

Was ist der schnellste und effizienteste Weg, dies mit vorhandenen Tools zu tun?

Bin ich richtig anzunehmen, dass die Verwendung von Regex (String.split()) ein wenig verschwendet, weil wir mit statischen String teilen?

Ich habe die Annahme von hier http://www.javamex.com/tutorials/regular_expressions/splitting_tokenisation_performance.shtml. Aber ich kann StringTokenizer nicht verwenden, da das Trennzeichen eine Folge von Zeichen ist.

Hinweis: Derzeit verwende ich String.split() und habe kein Problem damit. Das ist pure Neugier.

Antwort

2

Schneller als unter Verwendung von String.split ist Pattern.split: d. H. Das Muster vorkompilieren und für die nachfolgende Verwendung speichern. Wenn Sie immer das gleiche Muster verwenden und mit diesem Muster viel teilen, kann es sich lohnen, dieses Muster in ein statisches Feld oder etwas zu setzen.

Auch wenn Ihr Muster keine Regex-Metazeichen enthält, können Sie beim Erstellen des Musters Pattern.LITERAL übergeben. Dies ist etwas, was Sie nicht mit String.split tun können. :-P

Verwandte Themen