Hur kan du kontrollera om en sträng är ett nummer innan du analyserar den?
Du kan använda [NumberFormat#parse
] (http://docs.oracle.com/javase/8/docs/api/java/text/NumberFormat.html#parse-java.lang.String-):
try
{
NumberFormat.getInstance().parse(value);
}
catch(ParseException e)
{
// Not a number.
}
Parsa det (dvs. med Integer#parseInt
) och fånga upp undantaget. =)
För att förtydliga: Funktionen parseInt kontrollerar om den kan analysera talet i alla fall (självklart) och om du vill analysera det ändå kommer du inte att ta någon prestandaskada genom att faktiskt göra analysen.
Om du inte vill analysera det (eller om du analyserar det mycket, mycket sällan) kan du naturligtvis göra det på ett annat sätt.