Slik kontrollerer du om en streng er numerisk i Java

Hvordan sjekker du om en streng er et tall før du analyserer den?

Du kan bruke NumberFormat#parse:

try
{
     NumberFormat.getInstance().parse(value);
}
catch(ParseException e)
{
    // Not a number.
}
Kommentarer (5)

Parse det (dvs. med Integer#parseInt ) og bare fange unntaket =)

For å klargjøre: parseInt-funksjonen sjekker om den kan analysere tallet i alle fall (åpenbart), og hvis du vil analysere det uansett, vil du ikke ta noen ytelse hit ved å faktisk gjøre parsing.

Hvis du ikke ønsker å analysere det (eller analysere det veldig, veldig sjelden), kan du selvfølgelig gjøre det annerledes.

Kommentarer (3)

Jeg tror den eneste måten å pålitelig fortelle om en streng er et tall, er å analysere den. Så jeg ville bare analysere det, og hvis det er et tall, får du nummeret i en int gratis!

Kommentarer (0)