Πώς να ελέγξετε αν μια συμβολοσειρά είναι αριθμητική στη Java

Πώς μπορείτε να ελέγξετε αν ένα αλφαριθμητικό είναι αριθμός πριν το αναλύσετε;

Μπορείτε να χρησιμοποιήσετε το NumberFormat#parse:

try
{
     NumberFormat.getInstance().parse(value);
}
catch(ParseException e)
{
    // Not a number.
}
Σχόλια (5)

Αναλύστε το (δηλαδή με Integer#parseInt ) και απλά πιάστε την εξαίρεση. =)

Για να διευκρινίσουμε: Η συνάρτηση parseInt ελέγχει αν μπορεί να αναλύσει τον αριθμό σε κάθε περίπτωση (προφανώς) και αν θέλετε να τον αναλύσετε ούτως ή άλλως, δεν πρόκειται να δεχτείτε κάποιο χτύπημα στην απόδοση κάνοντας πραγματικά την ανάλυση.

Αν δεν θα θέλατε να τον αναλύσετε (ή τον αναλύετε πολύ, πολύ σπάνια), ίσως να θέλετε να το κάνετε διαφορετικά βέβαια.

Σχόλια (3)

Νομίζω ότι ο μόνος τρόπος για να διαπιστώσετε αξιόπιστα αν μια συμβολοσειρά είναι αριθμός, είναι να την αναλύσετε. Οπότε θα το αναλύσω, και αν είναι αριθμός, θα πάρετε τον αριθμό σε ένα int δωρεάν!

Σχόλια (0)