String durchsuchen

george

Mitglied
Hallo ich hab das Programm das ich eine Stringzeile aus einem Textdukoment durchsuchen möchte. Und zwar stehen in der Zeile Winddaten.

Bsp.:
0 0 0 14 0 42 45 65 0 0 0 ...
0 0 0 9 7 ...

Jede Zahl steht für eine von 650 Wingeschwindigkeiten in der Zeile.
Zwischen jeder Zahl ist ein Freiraum der von der folgenden Zahl abhängt.
D.h. Zwischen 1 stelleigen Zahlen sind 3 Leerzeichen, Zwischen 2Stelligen 2.
Ist also symmetrisch aufgebaut.

Mein Problem liegt gerade an dem Algoryhtmus das ich z.B den 534'ten Zahlwert in der Zeile benötige.

Meine Idee dazu in einer Schleife den String zu durchsuchen.

Vorraussetzung dabei ist das jede Zahl betachtet werden muss und für diese könnte ich ja dann eine Variable mitzählen lassen.

Nur darf das nicht Zifferweise geschehen sondern Zahlen wie 0 und 66 müssen als unterschieden werden.

Hat einer eine Idee wie ich den String so geziehlt surchsuchen könnte?

Gruß
 
In deinen Beispielen ist immer ein Leerzeichen zwischen den Werten. Poste bitte mal einen korrekten Messwert String. Eigentlich kannst du den String splitten nachdem eine Ziffer von einem Leerzeichen gefolgt wird (reguläre Ausdrücke).
 
Die Regel mit den Leerzeichen hab ich nicht ganz eingehalten, aber so sollte es gehen.
Trenne den String immer dann, wenn ein bis maximal 3 Leerzeichen im String auftauchen.

Code:
                String input = "0   0   0  14   0 42 45 65 0 0 0";

		String[] messwerte = input.split("\\s{1,3}");

		for (String wert : messwerte) {
			System.out.println(wert);
		}
 
Mein Problem liegt gerade an dem Algoryhtmus das ich z.B den 534'ten Zahlwert in der Zeile benötige.
Also ist dein Problemstellung unabhängig von den Leerzeichen. Du willst also den 534*'ten Zahlenwert haben und das würde ich lösen wie folgt (4-Wert im Beispiel ist "15" nicht als Integer sondern als String)

Java:
   @Test
    public void test() {
	String input = "1900  12 13 14 15 1 2 3 4 5";
	String[] split = input.split("\\s+");
	assertEquals("15", split[4]);
    }
 
Zuletzt bearbeitet:
Hey vielen Dank,

der erste Beitrag ist schon die Lösung. An den String geziehlt mit split zu zerlegen ist wirklicher einfacher, als meine Überlegungen.

Beim dritten versteh ich nciht ganz die Methode assertEquals? D
 
Zuletzt bearbeitet:
assertEquals ist eine Funktion von jUnit.

Hiermit wird geprüft, ob die Annahme (erwarteter Wert) übereinstimmt mit dem realen Wert.

Also hier soll 15 die Rückgabe des 4-ten Wertes aus dem gesplitteten Array sein
 

Neue Themen


Zurück
Oben