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
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
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.