Substringproblem

Screen

Bekanntes Mitglied
Hallo

Ich habe einen String ,der so aussieht :

0 0.5 0 { 0.0 , 0.0 , 1.0 }
1 0.5 0 { 0.0 , 1.0 , 0.0 }
2 0.5 0 { 1.0 , 0.0 , 0.0 }
3 0.5 1 { 0.0 , 0.0 , 0.0 }

Ich möchte aber nur die 0.5-Werte.

Um diese zu erhalte benutze ich die Substringmethode von String.

Java:
left = 162+2;
right= 162+5; 

for(int i =0; i< anzahl ; i++ )
    {
      try { 
        String tempvalue = contents.substring(left+dr, right+dr));
        System.out.println(tempvalue);
        dr= dr+30;
      } catch ( NumberFormatException e)
      {
           System.out.println("Problem");
           
           
      }
    }

Da der Abstand immer GLEICH ist sollte die Ausgabe lauten :

0.5
0.5
0.5
0.5

Bei mir sieht die Ausgabe aber so aus:

0.5
0.5
.5
5 1


An was liegt das nur ? Kann mir jemand helfen ?
 
S

SlaterB

Gast
wie hast du das denn geprüft?

prüfe genauer:
baue in deinen Code ein
if (".5".equals(tempvalue)) {
}
ein und schaue dir dann exakt an, welche Indexe du aktuell hast, wie die letzten 30 Zeichen oder der Gesamtstring im Einzelnen aussehen,
verwende z.B.
System.out.println(Arrays.toString(string.toCharArray()));
dann hast du eine schöne Aufteilung, wenn auch leider nicht mit Nummerierung,
eine for-Schleife mit Index + dazu charAt() liefert vielleicht doch mehr Infos
 

eRaaaa

Top Contributor
Mit deinem Code kann niemand etwas anfangen, zu dem sind da Syntaxfehler enthalten und co. Mache doch mal ein simples Beispiel mit dem String + Code....#

Das habe ich schon geprüft. Der Abstand ist immer gleich.

Das haben vor dir schon hundert andere hier auch gedacht/gesagt :D
 

Screen

Bekanntes Mitglied
Also um genau zu werden. Es ist eine Txt-Datei mit Einstellungsdaten. Der Inhalt der Datei wird via FileReader , BufferedReader eingelesen und dann in den StringBuilder geladen. Dann lese ich die bestimmten Werte mit Substring aus, die immer an bestimmten "Standorten" sind.

In diesem Fall ändert sich der Abstand, obwohl in der Txt-Datei der Abstand immer gleich ist.

Die Ausgabe "System.out.println(contents.toString()); " mit in Netbeans liefert:



0 0.5 0 { 0.0 , 0.0 , 1.0 }
1 0.5 0 { 0.0 , 1.0 , 0.0 }
2 0.5 0 { 1.0 , 0.0 , 0.0 }
3 0.5 1 { 0.0 , 0.0 , 0.0 }
 
Zuletzt bearbeitet:

njans

Top Contributor
Du könntest mal alle Leerzeilen mit .replayAll() durch ein eindeutiges, anderes Zeichen ersetzen, dann sieht man da evtl Leerzeichen auch :D
 

Dekker

Bekanntes Mitglied
Es kann sein das da Steuerzeichen drin sind die nicht angezeigt werden. Habt ihr die Dateien zufällig zwischen Linux und Windows gegenseitig getauscht?
 

MarderFahrer

Gesperrter Benutzer
Also um an alle ".5" Werte zu kommen hätte ich jetzt die ganzen Daten mittels .split(" ") erst mal geteilt und das Array dann durchlaufen. Überall wo ein Eintrag dann einen Dezimalpunkt besitzt, hätt ich einen Vector oder eine List damit gefüllt.
 

Neue Themen


Oben