Создание кнопки поиска (Double не может быть преобразован в строку)

private void searchProduct()
{ 
try {
     Product p = new Product();
     //Read data
     p.setId(Double.parseDouble(textID.getText()));

     //Display data
     textDescription.setText(String.valueOf(p.getDescription()));
     textPrice.setText(String.valueOf(p.getUnitPrice()));
     textUOM.setText(String.valueOf(p.getUnitOfMeasurement()));
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(this.frame, "ID must be number", "Error",JOptionPane.ERROR_MESSAGE);
} 
}

Здравствуйте, недавно я попытался поставить кнопку "Поиск", чтобы найти продукт, который равен идентификатору, но я не знаю, как проанализировать идентификатор, чем исходит из класса продукта, у меня ошибка.

1 ответ

Решение

Является ли textID.getText() фактически разборной двойной строкой? Например, "10.1", но "10.1" нет.

Всегда я делал это преобразование, я использую trim(), чтобы убрать лишние пробелы следующим образом:

String stringValue = textID.getText();
if(stringValue != null) {
    stringValue = stringValue.trim();
}
double doubleValue = Double.parseDouble(stringValue);

Смотрите здесь http://docs.oracle.com/javase/8/docs/api/java/lang/Double.html как избежать использования NumberFormatException с помощью регулярного выражения для вывода текста в строку перед попыткой преобразовать его в двойной.

Другие вопросы по тегам