Ist String ein NumberFormat oder nicht?

jeipack

Erfahrenes Mitglied
Hi
Kann man einen String auch ohne Exception überprüfen, ob er ein NumberFormat beinhaltet?
Java:
 Boolean numberok = null;
 try {
   Double.valueOf(mystring);
   numberok = true;
 } catch (NumberFormatException ex) {
   numberok = false;
 }
 
wozu soll das denn gut sein - ob man das auch ohne try-catch machen könnte?

Ich meine das ist doch schon ein guter Weg zum prüfen. DU kannst natürlich auch in einem String Array alle möglichen NFs die es so gibt eintragen und das dann mit einer Schleife prüfen ob der String gültig ist...

oder gibts einen besonderen Grund weshalb du die Exception weglassen willst?

Gruß Max
 
IMHO sind Exceptions doch genau dafür da. Nämlich wenn etwas unerwartetes Auftritt, dass man diese Ausnahme abfangen kann.
Einen anderen Weg gäbe es jetzt nur über reguläre Ausdrücke um damit zu prüfen ob es sich um eine Zahl handelt oder nicht.
 
Ja dann lass ich das mal so.
Dachte mir vielleicht gibt es eine Funktion die genau das prüft ohne eine Exception zu nützen.

Naja
Dank euch :)

Gruss
 
Allerdings nimm doch besser einen primitiven boolean:
Java:
      boolean numberok = false;
       try {
         Double.valueOf(mystring);
         numberok = true;
       } catch (NumberFormatException ex) {
         numberok = false;
       }

Oder du verwendet die Boolean-Konstanten:
Java:
      Boolean numberok = Boolean.FALSE;
       try {
         Double.valueOf(mystring);
         numberok = Boolean.TRUE;
       } catch (NumberFormatException ex) {
         numberok = Boolean.FALSE;
       }

Sonst hast du da unnötiges autoboxing auf das Boolean-Objekt drin.

Mach dir doch eine eigene Methode davon die dir dann true/false zurückgibt wenn du den eigentlichen Wert nicht brauchst.
 
thx, daran hab ich noch gar nicht gedacht :)


Java:
Integer i=new Integer(1);
//bad
i=2;
//good
i=Integer.valueOf(2);
//right?
 
Normalerweise benutzt man die primitive, es sein denn man benötigt explizit ein Objekt, wie z.B. in HashMaps oder Listen.
 
Zurück