Teilstrings aus unbekannt großen Textdateien extrahieren.

Status
Nicht offen für weitere Antworten.

MilchToast

Mitglied
Hallo

Ich sitzt zur Zeit vor folgendem Problem:

Ich lese eine V3D Datei ein und möchte aus dieser nur die Koordinaten rausfiltern. Die Koordinaten befinden sich immer zwischen zwei Schlüsselwörtern "house" und "wall". Da die Länge der eingelesenen V3D Variabel ist, können sich unterschiedlich viele Koordianten in dieser befinden. Wie ich die Koordianten zwischen "house" und "wall" rausfiltere weiß ich schon. Hier mal der Code meiner Methode:

Code:
public void extractData() {
		 //Koordinaten extrahieren
	    //Teilstring erzeugen
	    String pointString = new String();
	    
	    String house = new String("house");
	    String wall = new String("wall");
	    
	    int point = getData.indexOf(house);
	    int lastCoord = getData.indexOf(wall, point +19);
	    if (lastCoord == -1) {
	                                           
	    }
	    pointString = getData.substring(point +19, lastCoord -9);
	 
	    actData = pointString;
}

Doch soll das Programm weitersuchen, ob in der V3D noch weitere Koordinaten sind. Meine Methode sucht nur einmal nach "house" und "wall", speichert die Koordianten ab und ist fertig. Ich habe dann in meinem Substring nur die zuerst gefundenen Koordianten stehen. Aber es sollen ja alle Koordinaten gefunden werden und jedesmal in einem Substring gespeichert werden. Das Programm soll also quasi solange die Datei durchsuchen, bis es alle Koordianten gefunden hat.
Die Koordianten befinden sich immer zwischen den Schlüsselwörtern "house" und "wall" nur wie oft die Kombination aus den Schlüsselwörtern und den Koordinaten vorkommt, ist bei jeder eingelesenen Datei variabel.

Besten Dank im Vorraus, ich hoffe man versteht welches Problem ich habe.

MFG
 

Murray

Top Contributor
Es gibt eine überladene Methode indexOf, bei der man als zweiten Parameter einen Index angeben kann, von dem aus gesucht werdeen soll. Damit kannst Du also nach jedem Treffer (sofern der nicht bereits das letzte Zeichen im String war) mit Startindex = (Trefferindex+1) weitersuchen.

<OT>
Code:
String house = new String("house");
ist Unsinn;
Code:
String house = "house";
reicht vollkommen.</OT>
 

MilchToast

Mitglied
Hallo

Danke für die Antwort, was den Unsinn mit dem String betrifft, so weiß ich das. Das ist noch ein Relikt aus frühreren Versuche ;-).

Wie dem auch sei, sprich ich kann das wie folgt realisieren:

Suche ersten Index und speichere den gefundenen Inhalt im Substring ab.
Suche ab letzt gefundenen Index weiter und speichere das Ergebnis ebenfalls in einem Substring ab.
Wiederhole das solange bis keine weiteren Schlüsselwörter mehr vorkommen?

Worin muss ich die gefundenen Koordianten abspeichern ? Wäre eine LinkedList zu empfehelen oder eher ein Hashtable?
Weil die gefundenen Koordianten sollen in einer neuen Datei wiederverwendet werden und zwar nicht gebündelt nacheinander sondern, die jeweils gefundenen Koordianten sollen erhalten bleiben und an jeweils unterschiedliche Stellen in einer neuen Datei gespeichert werden.

Im Pseudocode sollte das Ergebnis ungefähr so aussehen:

<Koordianten> 34.233433 56.6745654 24.3445343 35.4343454 56.3453453 24.563544 </Koordianten>

<Koordianten> 35.2334343 56.34546454 24.344343 35.556233 56.3443434 24.453434 </Koordianten>

usw. Bis alle Koordianten die gespeichert wurden, in die neue Datei an die richtige Stelle geschrieben worden sind.

MFG
 

MilchToast

Mitglied
Hallo

Danke für die Hilfe habe das Problem nun gelöst, war zwar sehr knifflig aber nun geht es erstmal soweit.

Das Thema kann geschlossen werden.

MFG
 

André Uhres

Top Contributor
MilchToast hat gesagt.:
Das Thema kann geschlossen werden.
abhaken.jpg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Teilstrings sortieren Java Basics - Anfänger-Themen 2
H Teilstrings aus file auslesen Java Basics - Anfänger-Themen 5
K Ersetzen von Teilstrings in ArrayList von Strings Java Basics - Anfänger-Themen 11
A Einzelne TeilStrings einfärben Java Basics - Anfänger-Themen 3
C Anzahl ArrayLists unbekannt Java Basics - Anfänger-Themen 4
W Erste Schritte Variable in Methode unbekannt - Mitarbeiter Verwaltung Java Basics - Anfänger-Themen 2
O Exception unbekannt Java Basics - Anfänger-Themen 6
S Classpath package unbekannt Java Basics - Anfänger-Themen 5
E Object als Parameter das Unbekannt ist, aber ein bestimmtes Interface haben muss Java Basics - Anfänger-Themen 3
R Thread in ActionPerformed-Methode unbekannt? Java Basics - Anfänger-Themen 4
G Array-Länge bei Erzeugung noch unbekannt - wie erzeugen? Java Basics - Anfänger-Themen 12
M Matrizen zeilenweise einlesen (Größe unbekannt) Java Basics - Anfänger-Themen 4
B javac plötzlich unbekannt? Java Basics - Anfänger-Themen 12
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
kilopack15 Rechnen mit großen Zahlen Java Basics - Anfänger-Themen 6
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
P Variablen Negatives Ergebnis bei Multiplikation von großen Zahlen Java Basics - Anfänger-Themen 2
J Umgang mit großen Datenmengen Java Basics - Anfänger-Themen 9
S Multiplikation von großen Zahlen, ohne BigInt uä Java Basics - Anfänger-Themen 7
J Effizienter Umgang mit großen Dateien Java Basics - Anfänger-Themen 7
C Problem mit Lesen und Speichern und Verarbeiten von großen Text Dateien Java Basics - Anfänger-Themen 5
I Kann nicht compilieren warum? Bei großen Quellcode. Java Basics - Anfänger-Themen 8
G ArrayList bei großen Zahlen langsam? Java Basics - Anfänger-Themen 10
F Teilen einer großen Grafik Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben