У меня есть следующий код для анализа строковой переменной с именем str.
NumberFormat formatter = NumberFormat.getInstance();
Number number = formatter.parse(str);
Я хочу поймать исключение, выдаваемое, когда str не является числом, просто чтобы проверить его. У меня проблема в том, что он не всегда генерирует ожидаемое ParseException. Когда строка String начинается с цифры, но затем является символом, кажется, что она получает первые символы строки и анализирует их как число.
Например:
- если str = "a10", то генерируется исключение ParseException
- если str = "10a", то исключение не выдается и число = 10
Я не могу использовать Double.parseDouble (str), потому что str может иметь запятые и точки, такие как 1,000.98, и этот формат не понят этим методом.
Почему это происходит? Могу ли я подтвердить это любым другим способом?
Спасибо