Проверьте текстовое поле, если оно имеет несколько точек - PullRequest
0 голосов
/ 21 марта 2019

Я хочу создать сообщение об ошибке, если пользователь ввел несколько десятичных знаков в текстовом поле. Я могу только проверить его, если оно имеет 1., но я не знаю, как, если их много.

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Это не совсем то, что задает вопрос, но он наверняка будет обрабатывать несколько точек и многое другое. Идея состоит в том, чтобы извлечь ввод как String из Textfield, а затем преобразовать эту строку в double. Если он выдает исключение, пользователю подсказывают, что данный ввод недействителен, и просят ввести значение еще раз. Это будет обрабатывать все ваши входные данные проверки. Код будет примерно таким,

String inputNum = myTextField.getText();
double actualNum = 0.0;
try {
  actualNum = Double.parseDouble(inputNum);  
} catch (NumberFormatException ne){
    // Prompt User
}
1 голос
/ 21 марта 2019
String text = myTextField.getText();
String[] number = text.split("\\.");

Этот простой фрагмент кода дает вам все, что вам нужно.Количество элементов в массиве - 1, это количество раз, которое символ '.'В вашем вводе появляется.

РЕДАКТИРОВАТЬ: В случае, если пользователь может вводить значения, которые имеют несколько символов . друг за другом, например: "5.....", вам необходимо использовать перегруженную версию метода split.

split(myRegex)

будет получать значения между совпадениями, если они есть,

split(myRegex, -1)

получит их все, независимо от того, есть ли какое-либо значение между совпадениями.

...