try und catch block

Flooow

Mitglied
Mooin,

Code:
import java.io.*;
import java.io.IOException;
import java.util.*;

public class read_csv 
{
  public static void main (String args[]) throws IOException
  {
    String fileDir = "Mappe11.csv";
    BufferedReader in = new BufferedReader (new FileReader (fileDir));
    String zeile;
    int sNummer = 123456;
    int nummer;

    while ((zeile = in.readLine())!=null)
    {
      String[] splittArray = zeile.split(";");
      for (int i=0;i<6;i++)
      {
        System.out.print(splittArray[i]+" ");
      }
      nummer = Integer.parseInt (splittArray[0]);
      if (nummer == sNummer)
      {
        System.out.println("Match gefunden "+splittArray[0]);
      }
      else
      {
        System.out.print(" Nothing found");
      }
      System.out.println();
    }
    
    
    in.close();
    
  }


}

Ich bekomm die Fehlermeldung NuberformatException,
jez möchte ich das halt in nen try catch block packen,
weiß aber nich genau was da jez alles rein muss.
Könntet ihr mir das am Beispiel meines Progserläutern?

danke schön

mfg
 
Moin,

und in welcher Zeile tritt die Exception auf :confused:

Mal nebenbei:
woher weißt Du, dass das Stringarray genau 6 Elemente enthält ? ? ?
ich würde die for-Schleife besser über die Länge des Arrays laufen lassen:
Java:
String[] splitArray = zeile.split(";");
for( int i = 0; i < splitArray.length; i++ )
{
    // ...
}

Gruß
Klaus
 
Zuletzt bearbeitet:
Moin,

nun, wie die Deklaration von "parseInt" schon besagt :

löst aus:
NumberFormatException if the string does not contain a parsable integer

Was genau steht denn in den einzelnen String im Array drin ? ? ?

Tip: der Debugger bringt Dich hier schnell weiter :p

Gruß
Klaus
 
Also in den Strings stehn halt Telefonnummer. In einem Textfeld wird dann halt eingegeben welche tel nr gesucht werden soll, und am ende wird halt ausgegeben ob die vorhanden ist, oder nich. =) Gut denn werd ich mir den Debugger mal anschaun

danke.
 
Moin,

wo steht das ';' ?
In den einzelnen String des Arrays :confused:
Dann würde natürlich nicht gehen, da ein ';' eben KEINE Ziffer ist ;)
Da Du ja über ';' splittest, sollten sie dort aber eigentlich raus ein ...

Poste mal, wie die Einträge in 'zeile' ausschauen!
Sowas wie :
<054112345;054112346;054112347> wäre ok und ergibt im Array dann:
<054112345>
<054112346>
<054112347>

Alles andere wäre nicht ok ...
Oder häng' hier der Einfachheit halber mal die komplette CVS-Datei dran ! !

Gruß
Klaus
 
4944990176 4944990177 01.08.2004 07:58:12 01.08.2004 08:10:01
" 4944990178 02.08.2004 08:58:12 02.08.2004 09:10:01
" 4944990179 03.08.2004 09:58:12 03.08.2004 10:10:01
" 4944990180 04.08.2004 10:58:12 04.08.2004 11:10:01
" 4944990181 05.08.2004 11:58:12 05.08.2004 12:10:01
" 4944990182 06.08.2004 12:58:12 06.08.2004 13:10:01
" 4944990183 07.08.2004 13:58:12 07.08.2004 14:10:01
" 4944990184 08.08.2004 14:58:12 08.08.2004 15:10:01
" 4944990185 09.08.2004 15:58:12 09.08.2004 16:10:01
" 4944990186 10.08.2004 16:58:12 10.08.2004 17:10:01

so soeht eine Liste bei mir aus.
etwas fehlerhaft?
ja ";" meinte ich mit split^^
 
Moin,

na bitte .... :-(

Erstens sehe ich hier keine ';', nach denen gesplittet werden könnte ...
Dafür aber jede Menge '.', ':' und auch " - und beim einem String wie <07.08.2004> oder <13:58:12> würde Dir Dein parseInt eben die genannte Exception werfen ....

Gruß
Klaus
 

Neue Beiträge

Zurück