Ich möchte mit Hilfe von Java einen Text auslesen und immer bei bestimmten Zeichen eine bestimmte Anweisung machen (Zeichen treten immer mehrmals im Text auf):
wenn folgendes zeichen: ’ steht, soll alles bis zu diesem zeichen ausgelesen werden und in eine neue reinkopiert werden
wenn folgendes zeichen: : steht, soll ein Zeilenwechsel anstatt dieses Zeichens ein Zeilenwechsel eingefügt werden.
Leider weiß ich nicht wie ich an diese sache rangehen kann.
Wenn jemand eine Idee oder Quellcode hat - bitte melden!
Hi,
ein klassischer Fall fuer RegEx. In Perl wuerde das etwa so aussehen:
my $text =…
s/:/\n/gm #ersetzt die : durch ein newline
/’(.*?)’/ #danach enthaelt $1 den ersten Substring, der von zwei ‚‘ begrenzt ist.
Meines Wissens unterstuetzt Java perlcompatible RegEx, das duerfte also kein Problem darstellen…
Alles mal aus der Datei lesen und in einen String pappen.
wenn folgendes zeichen: : steht, soll ein Zeilenwechsel
anstatt dieses Zeichens ein Zeilenwechsel eingefügt werden.
myString.replace(’:’, ‚\n‘);
Frage an die Experten: wird hier eigentlich pro Ersetzung ein neuer String angelegt? Wenn ja, wäre das allenfalls von der Performance her nicht so optimal.
wenn folgendes zeichen: ’ steht, soll alles bis zu diesem
zeichen ausgelesen werden und in eine neue reinkopiert werden
Worein willst Du das kopieren? Erklär das bitte nochmals
Den StringBuffer kannst du dann mit .toString() in einen String verwandeln.
Ab Java 1.4 gibts auf Strings auch die Methode: .split(String regex), die mit regulären Ausdrücken arbeitet (analog der bereits erwähnten .replace-Methode).
Mit split kannst du Deinen String in einzelne Portionen aufsplitten, als Ergebnis bekommst du dann ein String-Array.
Das sieht dann in etwa so aus:
String[] lS = lBeispielString.split(":");
Dann kannst Du pro String aus dem Array machen, was Du willt.
z.B. ihn manipulieren, wegschreiben, einen Zeilenumbruch hinzufügen, etc.