Für diese Frage nehmen wir an, ich habe eine String
, die Werte Two;.Three;.Four(and so on)
enthält, aber Elemente sind durch ;.
getrennt.Der effizienteste Weg zum Aufteilen von Strings in Java
Jetzt weiß ich, es gibt Multiples Möglichkeiten, eine Zeichenfolge wie split()
und StringTokenizer
Aufspalten (wobei die schnelleren und funktionieren gut), aber meine Eingabedatei um 1GB und ich bin auf der Suche nach etwas, etwas effizienter als StringTokenizer
.
Nach einiger Forschung, indexOf
und substring
sind ziemlich effizient, aber die Beispiele haben nur einzelne Trennzeichen oder Ergebnisse geben nur ein einzelnes Wort/Element zurück.
Beispielcode mit indexOf
und substring
:
String s = "quick,brown,fox,jumps,over,the,lazy,dog";
int from = s.indexOf(',');
int to = s.indexOf(',', from+1);
String brown = s.substring(from+1, to);
Die oben genannten Arbeiten für den Druck brown
aber wie ich indexOf
und substring
können Sie eine Linie mit mehreren Trennzeichen spalten und die alle Elemente, wie unten angezeigt.
Erwarteter Ausgang
Two
Three
Four
....and so on
Was möchten Sie erreichen? Hast du Tests an verschiedenen Testfällen durchgeführt und gesehen, was "effizient" ist? –
Es gibt auch eine 'indexOf'-Überladung, die' String' ... – yshavit
Sie meine dies 'string.replaceAll ("; \\. "," \ N ");'? –