Hallo seth,
du musst das fragezeichen beruecksichtigen. fuer erklaerung siehe selfhtml.
Demnach ist er bei (.+?) bereits "zufriedengestellt", wenn er ein einzelnes Zeichen findet, ohne ? nimmt er soviel wie möglich? Es liegt dann weniger am + oder *, wie ich gerade bemerkt habe, sondern am "?".
und warum willst du split nicht verwenden?
Einen echten Grund kann ich Dir nicht nennen. Ich prüfe jede Zeile auf das Muster und wende es an:
else if (line.matches("^([0-9]+)=(.+)")) {
entries.put(Integer.parseInt(line.replaceAll("^([0-9]+)=(.+)", "$1")), line.replaceAll("^([0-9]+)=(.+)", "$2"));
}
Ich spar mir so den Umweg über das temp. Array und einer Schleife, weil mehr als ein = im String sein könnte, in der Bedingung, ob man das jedoch als echten Vorteil gelten lassen kann, bezweifle ich. Somit bleibt unterm Strich nur, ich wollte mich mal mit den reg. Ausdrücken befassen als Antwort übrig. Ist es denn deutlich langsamer?
Mit freundlichem Gruß
Micha