M
Moooni
Gast
Hallo,
ich will in einer Datei bestimmte Konstrukte ersetzen.
Als Beispiel "wort1(wort2)" in "[wort2]".
Deshalb will ich Zeile für Zeile durch die Datei gehen und immer fragen, ob "wort1(" vorhanden ist, wenn ja dann "wort1(" => "[" und das nächste ")" => "]".
Also hab ich ich der API nach den geeigneten Methoden gesucht.
Zum Suchen habe ich "int indexOf(String str, int fromIndex)" gefunden (fromIndex eignet sich gut, um nach einem Vorkommen ein zweites danach zu suchen).
Probleme habe ich aber bei der Replace-Methode
Die mir am geeignetsten erscheint ist folgende: "String replaceFirst(String regex, String replacement)". Damit habe ich aber nur ein Problem, ich kann nicht sagen ab welchem Zeichen er für das Ersetzen suchen soll.
Er darf nämlich nur das erste vorkommende ")" nach "wort1(" durch "[" ersetzen. Da aber auch "irgendwas(" stehen könnte, kann ich ein Replace nicht von anfang an durchlaufen lassen.
Natürlich könnte ich den String nun bei dem Index teilen den ich bei "indexOf" bekommen habe, anschließend das erste ")" ersetzen und zum Schluss wieder zusammenfügen.
Wirklich elegant würde ich dies aber nicht nennen.
Gibt es vielleicht doch eine Möglichkeit dem "repace" ein Startzeichen zu geben?
Danke für eure Hilfe
ich will in einer Datei bestimmte Konstrukte ersetzen.
Als Beispiel "wort1(wort2)" in "[wort2]".
Deshalb will ich Zeile für Zeile durch die Datei gehen und immer fragen, ob "wort1(" vorhanden ist, wenn ja dann "wort1(" => "[" und das nächste ")" => "]".
Also hab ich ich der API nach den geeigneten Methoden gesucht.
Zum Suchen habe ich "int indexOf(String str, int fromIndex)" gefunden (fromIndex eignet sich gut, um nach einem Vorkommen ein zweites danach zu suchen).
Probleme habe ich aber bei der Replace-Methode
Die mir am geeignetsten erscheint ist folgende: "String replaceFirst(String regex, String replacement)". Damit habe ich aber nur ein Problem, ich kann nicht sagen ab welchem Zeichen er für das Ersetzen suchen soll.
Er darf nämlich nur das erste vorkommende ")" nach "wort1(" durch "[" ersetzen. Da aber auch "irgendwas(" stehen könnte, kann ich ein Replace nicht von anfang an durchlaufen lassen.
Natürlich könnte ich den String nun bei dem Index teilen den ich bei "indexOf" bekommen habe, anschließend das erste ")" ersetzen und zum Schluss wieder zusammenfügen.
Wirklich elegant würde ich dies aber nicht nennen.
Gibt es vielleicht doch eine Möglichkeit dem "repace" ein Startzeichen zu geben?
Danke für eure Hilfe