사용자가 텍스트 상자에 입력한 한 줄의 데이터를 받아들이는 프로그램을 작성하세요. 이 데이터는 모두 공백으로 구분된 정수이며 공백 수에는 제한이 없습니다. 그리고 데이터를 1차원 배열로 분할한 후 배열에서 최소값을 추출하여 인터페이스에 표시합니다. 즉, 먼저 사용자 입력 문자열의 왼쪽과 오른쪽 공백을 필터링하기 위해 Trim() 함수를 사용합니다. 결과가 빈 문자열인 경우 JOptionPane 클래스의 showMessageDialog 메서드를 사용합니다. 사용자에게 "디지털 콘텐츠를 입력하세요."라는 메시지를 표시합니다. 사용자 입력이 비어 있지 않으면 charAt 함수를 사용하여 사용자 입력 문자열의 각 문자를 판단합니다. 숫자나 공백이 아닌 경우 "입력에 숫자가 아닌 내용이 포함되어 있습니다"라는 메시지가 표시되고 setText를 사용합니다. () 함수를 사용하면 사용자 입력 상자에 입력된 데이터가 지워집니다. 검증이 통과되면 문자열 유형의 1차원 배열이 생성되며, 그 요소는 공백으로 구분된 사용자 입력 문자열의 내용입니다. 그런 다음 정수의 1차원 배열을 만들고 문자열 배열의 길이와 동일한 공간을 할당합니다. 그런 다음 입력은 Integer 클래스의 valueOf() 함수를 통해 정수 배열로 변환됩니다. 최소 개수 변수를 생성하고 이를 정수 배열의 첫 번째 요소로 초기화합니다. for 루프를 사용하여 정수 배열을 순회하여 최소 정수를 추출하고 마지막으로 setText() 함수를 사용하여 최소값을 지정된 레이블에 표시합니다.
코드는 다음과 같습니다:
다음과 같이 코드 코드를 복사합니다.
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
공개 클래스 ArrayMinValue {
개인용 JFrame 프레임;
개인 JTextField 텍스트 필드;
JLabel lblNewLabel_1 = 새로운 JLabel();
/**
* 응용 프로그램을 실행합니다.
*/
공개 정적 무효 메인(String[] args) {
EventQueue.invokeLater(새로운 Runnable() {
공개 무효 실행() {
노력하다 {
ArrayMinValue 창 = 새로운 ArrayMinValue();
window.frame.setVisible(true);
} 잡기(예외 e) {
e.printStackTrace();
}
}
});
}
/**
* 애플리케이션을 생성합니다.
*/
공개 ArrayMinValue() {
초기화();
}
/**
* 프레임의 내용을 초기화합니다.
*/
개인 무효 초기화() {
Frame = new JFrame("1차원 배열의 최소값을 구합니다.");
프레임.setBounds(100, 100, 450, 150);
프레임.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
프레임.getContentPane().setLayout(null);
JLabel lblNewLabel = new JLabel("공백을 구분 기호로 사용하여 텍스트 상자에 여러 정수를 입력하십시오. 예: 3 5 2 562 125");
lblNewLabel.setBounds(10, 10, 414, 15);
프레임.getContentPane().add(lblNewLabel);
textField = 새로운 JTextField();
textField.setBounds(10, 35, 414, 21);
프레임.getContentPane().add(textField);
textField.setColumns(10);
lblNewLabel_1.setBounds(115, 70, 309, 15);
프레임.getContentPane().add(lblNewLabel_1);
JButton 버튼 = new JButton("/u8BA1/u7B97");
버튼.addActionListener(새 ActionListener() {
공공 무효 actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
버튼.setBounds(10, 66, 93, 23);
프레임.getContentPane().add(버튼);
}
protected void do_button_actionPerformed(ActionEvent e) {
String arrayStr = textField.getText().trim(); //왼쪽 및 오른쪽 공백 제거
if(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; i < 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) //지정된 라벨에 최소값을 표시합니다.
}
}
효과는 그림과 같습니다.