Преобразовать строку чисел из 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
  1. Разбить строку, прочитанную из текстового поля, при помощи String::split
  2. Использовать Integer::parseInt для получения целых чисел из строк
  3. Преобразовать числа в диапазонах с помощью отдельной функции
  4. Записать результат в список/массив и вывести его в заданный объект 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);
    }
}
→ Ссылка