Попробуйте ввести библиотеку Apache " commons Lang " в свой проект, и для последней строки вы можете сделать
int aInt = 0;
if(StringUtils.isNotBlank(aString) && StringUtils.isNumeric(aString) ){
aInt = Integer.parseInt(aString);
}
редактировать: не уверен, почему понизить. JtextField будет принимать любую строку. Если текстовое поле прослушивает каждое нажатие клавиши, каждое введенное нечисловое значение (включая пустое) будет генерировать исключение NumberFormatException. Лучше всего проверить, является ли он числовым, прежде чем делать что-либо с новым значением.
edit2: согласно комментариям Томаса ниже. Я выполнил тест, чтобы сравнить способ try / catch и StringUtils для решения этой проблемы. Тест проводился 5 миллионов раз для каждого. Среднее время попытки / улова составило 21 секунду. Среднее время для StringUtils составило 8 секунд. Таким образом, использование StringUtils для больших нагрузок значительно быстрее. Если нагрузка на код невелика, вы заметите, что разницы мало. Испытательный пробег был
try{
result = Integer.parseInt(num);
}catch(NumberFormatException ex){
result = -1;
}
против
if(StringUtils.isNotBlank(num) && StringUtils.isNumeric(num)){
result = Integer.parseInt(num);
}else{
result = -1;
}
каждый проход по циклу генерировал новую случайную строку из 10 цифр, чтобы избежать какой-либо оптимизации в циклах оператора if. Это добавило 6-7 секунд накладных расходов.