Strings vergleichen

hallo, ich habe folgendes problem:

ich habe aus einer datei zeilen als strings eingelesen.
nun ist es aber so, dass einige zeilen, und zwar die die keine 8 od. 10-stellige zahl am anfang haben, nicht mit übernommen werden sollen.
mit ‚s.substring(0,10).equalsIgnoreCase(„TEST“)‘ z.B. kann ich zwar die zeilen aussortieren die mit ‚test‘ beginnen, das ist aber blöd da es mehrere arten von zeilen gibt die ich nicht übernehmen will, und die aber nicht mit test beginnen, sondern mit anderen wörtern.
deshalb wäre es viel besser ich könnte anders herum an die sache heran gehen.
ich würde einfach gern all die zeilen einlesen die mit einer 8 od. 10 stelligen zahl beginnen. und nicht alle möglichen fälle der zeilen angeben die ich nicht übernommen will.
danke im voraus
philipp

Hallo!

Idee von vorhin etwas anders dargestellt:

main()
 while
 Hole naechste Zeile
 nehme ersten 8 Zeichen der Zeile
 boolean bNum = PruefeZeichen(sAchtZeichen);
 ist (bNum)
 Schreibe Zeile
 end while
end main

boolean PruefeZeichen(sAchtZeichen)
 for
 einChar = sAchtZeichen(i)
 ist einChar kleiner ASC(48) oder groesser ASC(57)
 return false; // mind. 1 Zeichen ist keine Ziffer
 end for
 return true; // sAchtZeichen ist Nummer 
end PruefeZeichen

HTH
Patrick

Hi Philipp,

machs doch mit sql, ODBC-Schnittstelle definieren, und dann: select [das was de willst] from [datei].

ich hoffe es hilft dir weiter…

while( ... zeilen vorhanden ... )
{
 String sLine = ... zeile einlesen ...
 try
 {
 Long.parseLong( sLine.substring( 0, 8 ) );

 ... weitere Behandlung der Zeilen ...
 }
 catch( NumberFormatException e ) {}
}

parseLong versucht den String in ein Long umzuwandeln (setzt vorraus, dass keine Punkt/Komma vorkommen). Es reicht die ersten acht Zeichen zu prüfen, das schließt dann solche Zeilen die zehn Ziffern am Anfang stehen haben ein (außer du willst neun Ziffern explizit ausschließen).

Wenn sich der String nicht umwandeln läßt, also keine Zahl am Anfang steht, dann wird in die Exception-Behandlung gesprungen und die weitere Behandlung ignoriert.

Grüße, Robert