เขียนโปรแกรมเพื่อรับข้อมูลบรรทัดเดียวที่ผู้ใช้ป้อนในกล่องข้อความ ข้อมูลเหล่านี้เป็นตัวเลขจำนวนเต็มทั้งหมด คั่นด้วยช่องว่าง และไม่จำกัดจำนวนช่องว่าง และแยกข้อมูลออกเป็นอาร์เรย์หนึ่งมิติ จากนั้นแยกค่าต่ำสุดออกจากอาร์เรย์และแสดงค่านั้นในอินเทอร์เฟซ แนวคิดคือการตรวจสอบอินพุตของผู้ใช้ก่อน นั่นคือ ขั้นแรกให้ใช้ฟังก์ชัน trim() เพื่อกรองช่องว่างด้านซ้ายและขวาของสตริงอินพุตของผู้ใช้ หากผลลัพธ์เป็นสตริงว่าง ให้ใช้เมธอด showMessageDialog ของคลาส JOptionPane แจ้งผู้ใช้ว่า "โปรดป้อนเนื้อหาดิจิทัล" หากอินพุตของผู้ใช้ไม่ว่างเปล่า ให้ใช้ฟังก์ชัน charAt เพื่อตัดสินอักขระแต่ละตัวในสตริงอินพุตของผู้ใช้ หากไม่ใช่ทั้งตัวเลขหรือช่องว่าง ระบบจะแจ้ง "อินพุตมีเนื้อหาที่ไม่ใช่ตัวเลข" จากนั้นใช้ setText () ฟังก์ชั่นเพื่อเข้าสู่ช่องป้อนข้อมูลของผู้ใช้ ข้อมูลในจะถูกล้าง หากผ่านการตรวจสอบ จะมีการสร้างอาร์เรย์ประเภทสตริงหนึ่งมิติขึ้น โดยองค์ประกอบจะเป็นเนื้อหาของสตริงอินพุตของผู้ใช้ที่คั่นด้วยช่องว่าง จากนั้นสร้างอาร์เรย์จำนวนเต็มหนึ่งมิติและจัดสรรพื้นที่เท่ากับความยาวของอาร์เรย์สตริง จากนั้นอินพุตจะถูกแปลงเป็นอาร์เรย์จำนวนเต็มผ่านฟังก์ชัน valueOf() ของคลาส Integer สร้างตัวแปรตัวเลขขั้นต่ำและเริ่มต้นให้เป็นองค์ประกอบแรกของอาร์เรย์จำนวนเต็ม ใช้ for loop เพื่อสำรวจอาร์เรย์จำนวนเต็มเพื่อแยกจำนวนเต็มขั้นต่ำ และสุดท้ายใช้ฟังก์ชัน 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 ส่วนตัว;
JLabel lblNewLabel_1 = JLabel ใหม่ ();
-
* เปิดแอปพลิเคชัน
-
โมฆะคงที่สาธารณะ main (String [] args) {
EventQueue.inurgeLater (เรียกใช้ใหม่ () {
โมฆะสาธารณะวิ่ง () {
พยายาม {
หน้าต่าง ArrayMinValue = ArrayMinValue ใหม่ ();
window.frame.setVisible (จริง);
} จับ (ข้อยกเว้นจ) {
e.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().เพิ่ม(lblNewLabel_1);
ปุ่ม JButton = JButton ใหม่ ("/u8BA1/u7B97");
ปุ่ม addActionListener (ActionListener ใหม่ () {
การกระทำที่เป็นโมฆะสาธารณะดำเนินการ (ActionEvent e) {
do_button_actionดำเนินการ(e);
-
-
ปุ่ม setBounds (10, 66, 93, 23);
frame.getContentPane().add(ปุ่ม);
-
โมฆะที่ได้รับการป้องกัน do_button_actionPerformed (ActionEvent e) {
String arrayStr = textField.getText().trim(); // ลบช่องว่างด้านซ้ายและขวา
ถ้า(arrayStr.เท่ากับ("")){
JOptionPane.showMessageDialog(null, "กรุณากรอกเนื้อหาดิจิทัล");
กลับ;
-
สำหรับ (int i = 0; i < arrayStr.length(); i++) { // กรองอินพุตที่ไม่ถูกต้อง
ถ่าน charAt = arrayStr.charAt(i);
ถ้า (!Character.isDigit(charAt) && charAt != ' ') {
JOptionPane.showMessageDialog(null, "ข้อมูลที่ป้อนมีเนื้อหาที่ไม่ใช่ตัวเลข");
textField.setText("");
กลับ;
-
-
String[] numStrs = arrayStr.split(" {1,}"); // แยกสตริง
int[] numArray = int ใหม่ [numStrs.length]; // สร้างอาร์เรย์จำนวนเต็ม
//แปลงอินพุตเป็นอาร์เรย์จำนวนเต็ม
สำหรับ (int i = 0; i < numArray.length; i++) {
numArray[i] = จำนวนเต็ม.valueOf(numStrs[i]);
-
int min = numArray[0]; // สร้างตัวแปรตัวเลขขั้นต่ำ
สำหรับ (int j = 0; j < numArray.length; j ++) {
if (min > numArray[j]) { //แยกจำนวนเต็มที่น้อยที่สุด
นาที = numArray[j];
-
-
lblNewLabel_1.setText("ตัวเลขที่น้อยที่สุดในอาร์เรย์คือ: " + min); //แสดงค่าต่ำสุดให้กับป้ายกำกับที่ระบุ
-
-
เอฟเฟกต์ดังแสดงในรูป: