Java проверка числового формата - PullRequest
0 голосов
/ 05 августа 2020

Не могли бы вы посоветовать решение в Java для проверки числовых форматов. В качестве входного параметра я получаю String. Например, есть европейский формат: 1.234,56 Затем я выполняю синтаксический анализ:

NumberFormat.getNumberInstance(locale).parse(value) 

Но перед синтаксическим анализом мне нужна проверка. Пример входных данных: 1..234`` 56 - не должно быть действительным, но может быть проанализировано

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Вы можете go с построением вашего регулярного выражения, чтобы проверить формат, содержащий запятые или десятичные знаки в строке. Также возьмите ссылку из регулярного выражения, например: ^ \ d {1,3} | \ d (([,]? \ D {3}) * ([.,] \ D {2} +)? $)

Вы также можете взглянуть на это: Java regex, чтобы проверить, является ли строка допустимым форматом числа (размещение запятой и десятичной точки)

0 голосов
/ 05 августа 2020

Что ж, есть много возможных решений. Но для этой ситуации было бы хорошо использовать исключения. Когда невозможно преобразовать строку в число, в основном напишите пользователю сообщение о том, что он написал неправильное число, и попросите его ввести новый. Для выбора правильного типа номера вы можете использовать overloading.

try {
    NumberFormat.getNumberInstance(locale).parse(value)
}
catch(Exception e) {
    System.out.println("The number entered is invalid.");
    // Enter the new number code
}
...