Problem mit string.equals bzw string.contains

Derp

Neues Mitglied
Aloa!

Ich habe ein Problem. Wer hätts gedacht 😳
Und zwar lese ich eine Messfile Zeile für Zeile in ein String-Array ein.
Da ich aber für den weiteren Verlauf eigentlich nur die Messdaten und nicht den Header brauche, würde ich diesen gerne "wegschneiden", wozu ich ersteinmal seine (leider variable) Länge bestimmen muss.
Die letzte Zeile des Headers heißt jedoch immer "[Data_001]".

Aktuell würde ich das so lösen:

[Java]
int header = 0;

for(int i = 0; i<stringarray.length; i++){
if(stringarray.contains("[Data_001]")){
header = i;
}
}
[/Java]

Oder Wahlweise auch mit der .equals. Leider funktioniert das irgendwie nicht. Mache ich das selbe mit "Data" statt "[Data_001]" funktioniert es - nur dass das Wort "Data" leider zu oft auch schon davor dran kommt und mir wird die erste Zeile angegeben.
Ich habe auch schon folgendes probiert:

[Java]
int header = 0;
for(int i = 0; i<gesammtlänge; i++){
if(zeilenarray.contains("Data")){
if(zeilenarray.contains("001")){
header = i;
}
}
}
[/Java]

Was leider auch nicht funktionieren will. Das Entscheidende ist leider tatsächlich diese Zeile, die davor oder danach können aufgrund ihrer Variabilität nicht genommen werden ;(
Ich bräuchte also irgendwie die Position des "[Data_001]"-Strings im Array.
Kann es sein, dass Java hier Probleme mit den eckigen Klammern oder dem Unterstrich hat?
Irgendwie wurmt mich das gerade, ich habe heute schon eine Menge Probleme gelöst und nun hänge ich an so einer vermeindlichen Kleinigkeit...
 
unbekanntes Verhalten im einfachen Programmen kann man fast immer mit Ausgaben beikommen,
System.out.println() gibts bereits im ersten Hello-World-Programm,

verzichte auf Arrays, Schleifen und all den sonstigen Kram in deinem Programm,
vielleicht zum Einlesen und Splitten usw., gerne,
aber sorge dafür dass du irgendwann Code der Form

Java:
String x = ..; // z.B. aus Array holen
// hier gehts los
hast mit x als den String, der eigentlich "[Data_001]" sein soll

nun kann man mit Rätselraten aufhören und endlich konzentriert am Problem arbeiten
1. gib den String aus
2. gib equals Vergleich aus, contains, was du so alles schon denken kannst
3. gib die Länge des Strings aus, vielleicht wird es jetzt schon komisch,
sind die eckigen Klammern doch nicht mit dem String (ok, das sollte bei 1. schon auffallen)?,
sind vielleicht Leerzeichen oder sonstige Probleme mit drin?
4. die Intensiv-Klärung ist die Ausgabe des char-Arrays des Strings, per Methode abfragbar, per Schleife durchlaufen,
untereinander, mit Ausgabe der Zählvariable, des aktuellen Zeichens als char sowie auf int gecastet
 
mach doch sowas wie ein
Java:
do{}while zeile.contains('komiscxher Srting für header-Ende');
sprich eine fußgesteuerte Schleife, die solange läuft, bis die betreffende Zeile gefunden wurde. Danach kannst du dann alles andere machen
 

Neue Themen


Zurück
Oben