# nach Eingabe prüfen: ob int, double,float,...



## Werz (29. Sep 2003)

Hallo ,
wenn ich den user eine Eingabe machen lasse (über BufferedReader) und das dann an den StringTokenizer übergebe, wie kann ich festellen ob es sich um einen String eine int oder double handelt. Nach der Erkennung soll die dann (wohl mittels der wrapper-Klassen) der entsprechenden Variablen zugewiesen und ausgegen werden.
Gruß
Werz

z.B: Eingabe: 2 Hallo 3.56


----------



## Nobody (29. Sep 2003)

du könntest versuche mit einer try catch konstruktion, das ganze versuchen unzuwandeln:
nach der eingabe wird das ganze an den string s übergeben (kannst du auch anpassen)
also könnte das ganze dann so aus sehen:

```
boolean tauschbar=false;
try{
  int i = Integer.parseInt(s);
  tauschbar=true;
catch(NumberFormatException e1){ }
if(tauschbar==false){
  try{
    double d = Double.parseDouble(s);
    tauschbar=true;
  }
  catch(NumberFormatException e2){ }
}
```


das ganze kannst/musst du noch an deine bedürfnisse anpassen. hab das ganze grad nur so ausm kopf geschrieben, bin also nicht sicher, dass ich mich nicht verschrieben habe.


----------



## Werz (30. Sep 2003)

Danke Nobody. Hat mir schon sehr geholfen.
Ich hab es jetzt so weit :

```
String varTemp = tokens.nextToken();
    try{
      intVar = Integer.parseInt(varTemp);
      tauschbar=true;
      System.out.print("intVar="+intVar+" ");
    }
      catch(NumberFormatException e1){}
     if(tauschbar==false){
       try{
        doubleVar = Double.parseDouble(varTemp);
        tauschbar=true;
        System.out.print("doubleVar="+doubleVar+" ");
       }
      catch(NumberFormatException e2){}
     }
     if(tauschbar==false){
        stringVar = varTemp;
        System.out.print("String="+stringVar+" ");
     }
```

Jetzt hab ich es nur nicht hinbekommen, dass dieser Teil mehrmals durchlaufen wird. Da der Benutzer ja verschiedene durch Leerzeichn getrennte eingaben macht.
Vielleicht hat du da auch noch einen Tip.
Danke
Werz


----------



## DTR (30. Sep 2003)

Du könntest statt einem StringTokenizer einen StreamTokenizer verwenden. Der ist zwar etwas komplexer, dafür bietet er dir aber auch Methoden, die dir sagen, ob das nächste Wort ein String, ein double oder ein int ist.


----------

