Hallo Zusammen,
habe folgende Splitmethode:
diese ist leider - wer hätte es gedacht :/ - nur halb so schnell wie String#split. (edit: bzw nicht halb so schnell, sondern ballert doppeltsoviel Speicher zu.... Den Benchmarkvergleich will ich glaub garnicht wissen
)
An String#split passt mir aber folgendes nicht:
Ausgabe: 5
Ich will aber, dass er hier 11 tokens liefert. Also bleibt mir imho nicht viel mehr übrig, als das selbst zu schreiben. Nur ist mir meine Lösung noch zu lahm. Habt ihr vllt Verbesserungsvorschläge?
Danke und Grüße
Andi
habe folgende Splitmethode:
Java:
public static String[] split(String str, String delim) {
StringBuilder sb = new StringBuilder();
List<String> tokens = new ArrayList<String>();
int length = str.length(), delimLength = delim.length();
for (int i = 0; i < length; i++) {
if (i + delimLength > length || !str.substring(i, i + delimLength).equals(delim)) {
sb.append(str.charAt(i));
} else {
tokens.add(sb.toString());
sb.setLength(0);
i += delimLength - 1;
}
}
tokens.add(sb.toString());
String[] ret = new String[tokens.size()];
return tokens.toArray(ret);
}
diese ist leider - wer hätte es gedacht :/ - nur halb so schnell wie String#split. (edit: bzw nicht halb so schnell, sondern ballert doppeltsoviel Speicher zu.... Den Benchmarkvergleich will ich glaub garnicht wissen
An String#split passt mir aber folgendes nicht:
Java:
System.out.println("Hallo;Welt;das;ist;ein;;;;;;".split(";").length);
Ausgabe: 5
Ich will aber, dass er hier 11 tokens liefert. Also bleibt mir imho nicht viel mehr übrig, als das selbst zu schreiben. Nur ist mir meine Lösung noch zu lahm. Habt ihr vllt Verbesserungsvorschläge?
Danke und Grüße
Andi
Zuletzt bearbeitet: