#java
#java
Вопрос:
У меня есть большое количество текстовых полей, которые я преобразую из строк в целые числа и присваиваю переменной. Код выглядит примерно так, как показано ниже. Кто-нибудь знает способ упростить подобный код, чтобы он не был таким повторяющимся? Спасибо
if (text_1.getText().trim().equals("")) {
bet1 = 0;
}else{
bet1 = Integer.parseInt(text_1.getText());
}
if (text_2.getText().trim().equals("")) {
bet2 = 0;
}else{
bet2 = Integer.parseInt(text_2.getText());
}
if (text_3.getText().trim().equals("")) {
bet3 = 0;
}else{
bet3 = Integer.parseInt(text_3.getText());
}
if (text_4.getText().trim().equals("")) {
bet4 = 0;
}else{
bet4 = Integer.parseInt(text_4.getText());
}
if (text_5.getText().trim().equals("")) {
bet5 = 0;
}else{
bet5 = Integer.parseInt(text_5.getText());
}
Ответ №1:
Ваш код требует использования массива или коллекции, такой как список массивов. Сделайте это, и простой цикл for позволит вам выполнить весь этот код в одном блоке.
Например, если вы используете массив JTextField, называемый TextFields, и массив int, называемый bet,…
for (int i = 0; i < textFields.length; i ) {
String value = textFields[i].getText().trim();
if (value.isEmpty()) {
bet[i] = 0;
} else {
try {
bet[i] = Integer.parseInt(value);
} catch (NumberFormatException nfe) {
// JOptionPane to notify user that textfield i's text is non-numeric
// set textfield's text to ""
}
}
}
Комментарии:
1. Мне нравится, как всегда, красиво и лаконично
2. Спасибо. Отлично работает!