Come controllare se una stringa è numerica in Java

Come controllereste se una stringa è un numero prima di analizzarla?

Puoi usare NumberFormat#parse:

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

Analizzatelo (cioè con Integer#parseInt ) e semplicemente catturare l'eccezione. =)

Per chiarire: la funzione parseInt controlla se può analizzare il numero in ogni caso (ovviamente) e se vuoi analizzarlo comunque, non stai andando a prendere alcun colpo di prestazioni facendo effettivamente l'analisi.

Se non volete analizzarlo (o lo analizzate molto, molto raramente) potreste desiderare di farlo diversamente, naturalmente.

Commentari (3)

Penso che l'unico modo per dire in modo affidabile se una stringa è un numero, è analizzarla. Quindi io la analizzerei, e se è un numero, si ottiene il numero in un int gratis!

Commentari (0)