Hallo
und zwar frage ich mich warum das Programm (nur schnell hingeschrieben dient nur um "schnell" eine Liste zu bearbeiten) mir den Fehler nach ca 900 ausgegebenen Datensätzen ausgibt.
Java:
publicclassMain{/**
* @param args the command line arguments
*/publicstaticvoidmain(String[] args){int count=0;try{BufferedReader in =newBufferedReader(newFileReader("csvdatei.csv"));String zeile =null;while((zeile = in.readLine())!=null){String[] dat=newString[18];
dat=zeile.split(";");String m =dat[4];String[] split2 =newString[3];
split2 = m.split("\\D");String textu2=split2[0]+"[._-]"+split2[1]+"[._-]"+split2[2]+".*";try{int i2=0;BufferedReader in2 =newBufferedReader(newFileReader("zeichungen_herne.txt"));String zeile2 =null;while((zeile2 = in2.readLine())!=null){if(zeile2.matches(textu2)){System.out.println(zeile+";"+zeile2);
count++;}}}catch(IOException e){
e.printStackTrace();}}}catch(IOException e){
e.printStackTrace();}System.out.println(count);}}
error hat gesagt.:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at zeichnung.Main.main(Main.java:31)
Java Result: 1
aber da mein dat[4] eine genormte schreibweise hat (xxxx/x.xxx) muss er immer aus 3 Feldern bestehen. Das einzige was ich mir dann da vorstellen könnte ist das die die die Liste angefertigt haben etwas falsch aufgeschrieben haben.
Ich kann davon ausgehen das es der nächste Datensatz hinter dem letzten ausgegebenen ist oder?
Wenn der split kürzer als 3 Felder ist kann dieser Fehler nicht kommen oder?
Damit mit kann man grundsätzlich rechenen, dass immer jemand irgendwas falsch macht ;-)
Überprüfe doch einfach mal die Länge von split2 (split2.length) und lass die m ausgeben.
Der Tipp mit den String[] =null, fand ich sehr gut, danke sehr
der Rest natürlich auch, ich erwische nun alle die er finden kann
mal dann etwas anderes, habt ihr eine möglichkeit mit der ich auch die ausgeben kann bei denen er keine übereinstimmung findet, also das Programm schaut ja ob er die Nummer aus der einen Datei in der anderen Datei findet und schreibt sie zusammen auf, nun würde ich noch gerne die sehen die er nicht gefunden hat. jemand eine Idee?