Преобразовать строку чисел из JTextField
Доброго времени суток помогите пожалуйста! Мне нужно ввести числа (от 0 до 100) в строку JTextField, разделенную пробелом Необходимо, чтобы числа были переведены в систему 2,3,4,5, то есть числа от 0 до 60 = 2; От 60 до 75 = 3; От 75 до 90 = 4; От 90 до 100 = 5; Действия происходят по нажатию кнопки. И выведите их в JTextArea (пример ввода (42 62 92), пример вывода [2, 3, 5]) Как можно реализовать этот код? Буду рад любой помощи!
Ответы (2 шт):
Автор решения: kyt3
→ Ссылка
Так как не видно закономерности - можно обычными if. Что-то типо такого:
int someMethod(int inputValue){
if(inputValue < 60){
return 2;
}
if(inputValue < 75){
return 3;
}
}
и т.д. В зависимости от задачи можно добавить <= если нужно включительно, в условии этого не сказано насколько вижу.
Автор решения: Alex Rudenko
→ Ссылка
- Разбить строку, прочитанную из текстового поля, при помощи
String::split - Использовать
Integer::parseIntдля получения целых чисел из строк - Преобразовать числа в диапазонах с помощью отдельной функции
- Записать результат в список/массив и вывести его в заданный объект JTextArea
String input = myTextField.getText();
int[] result = Arrays.stream(input.split("\\s+")) // Stream<String>
.mapToInt(Integer::parseInt) // IntStream
.map(MyClass::convert)
.toArray();
outputTextArea.setText(Arrays.toString(result));
Статическая функция конвертации:
// MyClass
static int convert(int n) {
if (n >= 0 && n < 60) {
return 2;
} else if (n < 75) {
return 3;
} else if (n < 90) {
return 4;
} else if (n <= 100) {
return 5;
} else {
throw new IllegalArgumentException("Неверное число " + n);
}
}