Напишите программу, принимающую одну строку данных, введенную пользователем в текстовое поле. Эти данные представляют собой целые числа, разделенные пробелами, количество пробелов не ограничено. И разбить данные на одномерный массив, а затем извлечь минимальное значение из массива и отобразить его в интерфейсе. Идея состоит в том, чтобы сначала проверить ввод пользователя, то есть сначала использовать функцию обрезки () для фильтрации левого и правого пробелов входной строки пользователя. Если результатом является пустая строка, используйте метод showMessageDialog класса JOptionPane для этого. предложит пользователю «Пожалуйста, введите цифровой контент». Если ввод пользователя не пуст, используйте функцию charAt для оценки каждого символа в строке ввода пользователя. Если это не число и не пробел, появится сообщение «Ввод содержит нечисловое содержимое», а затем используйте setText. () для входа в поле пользовательского ввода. Данные удаляются. Если проверка пройдена, создается одномерный массив строкового типа, элементами которого является содержимое введенной пользователем строки, разделенное пробелами. Затем создайте одномерный массив целых чисел и выделите пространство, равное длине массива строк. Затем входные данные преобразуются в целочисленный массив с помощью функции valueOf() класса Integer. Создайте переменную с минимальным числом и инициализируйте ее первым элементом целочисленного массива. Используйте цикл for для обхода массива целых чисел и извлечения минимального целого числа и, наконец, используйте функцию setText() для отображения минимального значения в указанной метке.
Код выглядит следующим образом:
Скопируйте код кода следующим образом:
импортировать java.awt.EventQueue;
импортировать javax.swing.JFrame;
импортировать javax.swing.JLabel;
импортировать javax.swing.JTextField;
импортировать javax.swing.JButton;
импортировать java.awt.event.ActionListener;
импортировать java.awt.event.ActionEvent;
импортировать javax.swing.JOptionPane;
общественный класс ArrayMinValue {
частный фрейм JFrame;
частный JTextField textField;
JLabel lblNewLabel_1 = новая JLabel();
/**
* Запустите приложение.
*/
public static void main(String[] args) {
EventQueue.invokeLater(новый Runnable() {
общественный недействительный запуск () {
пытаться {
Окно ArrayMinValue = новый ArrayMinValue();
window.frame.setVisible(истина);
} catch (Исключение е) {
е.printStackTrace();
}
}
});
}
/**
* Создайте приложение.
*/
общественный ArrayMinValue () {
инициализировать();
}
/**
* Инициализируйте содержимое кадра.
*/
частная недействительная инициализация () {
Frame = new JFrame("Получить минимальное значение одномерного массива");
Frame.setBounds(100, 100, 450, 150);
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Frame.getContentPane().setLayout(null);
JLabel lblNewLabel = new JLabel("Введите несколько целых чисел в текстовое поле, используя пробелы в качестве разделителей. Например: 3 5 2 562 125");
lblNewLabel.setBounds(10, 10, 414, 15);
Frame.getContentPane().add(lblNewLabel);
textField = новый JTextField();
textField.setBounds(10, 35, 414, 21);
Frame.getContentPane().add(textField);
textField.setColumns(10);
lblNewLabel_1.setBounds(115, 70, 309, 15);
Frame.getContentPane().add(lblNewLabel_1);
Кнопка JButton = новая JButton("/u8BA1/u7B97");
button.addActionListener(новый ActionListener() {
общественный недействительный actionPerformed (ActionEvent e) {
do_button_actionPerformed (е);
}
});
button.setBounds(10, 66, 93, 23);
Frame.getContentPane().add(кнопка);
}
protected void do_button_actionPerformed (ActionEvent e) {
String arrayStr = textField.getText().trim() //Удалить левые и правые пробелы
если(arrayStr.equals("")){
JOptionPane.showMessageDialog(null, «Пожалуйста, введите цифровой контент»);
возвращаться;
}
for (int i = 0; i < arrayStr.length(); i++) { // Фильтруем недопустимый ввод
char charAt = arrayStr.charAt(i);
if (!Character.isDigit(charAt) && charAt != ' ') {
JOptionPane.showMessageDialog(null, «Ввод содержит нечисловой контент»);
textField.setText("");
возвращаться;
}
}
String[] numStrs = arrayStr.split(" {1,}"); // Разделить строку
int[] numArray = new int[numStrs.length] // Создаём целочисленный массив;
//Преобразуем входные данные в целочисленный массив
for (int i = 0; я <numArray.length; i++) {
numArray[i] = Integer.valueOf(numStrs[i]);
}
int min = numArray[0] // Создаём переменную с минимальным числом
for (int j = 0; j < numArray.length; j++) {
if (min > numArray[j]) { //Извлекаем наименьшее целое число
мин = numArray[j];
}
}
lblNewLabel_1.setText("Наименьшее число в массиве: " + min); //Отображение минимального значения для указанной метки
}
}
Эффект такой, как показано на рисунке: