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