اكتب برنامجًا لقبول سطر واحد من البيانات التي يدخلها المستخدم في مربع النص. هذه البيانات كلها أرقام صحيحة، مفصولة بمسافات، وعدد المسافات غير محدود. وتقسيم البيانات إلى مصفوفة أحادية البعد، ثم استخراج الحد الأدنى من القيمة من المصفوفة وعرضها في الواجهة. تتمثل الفكرة في التحقق من إدخال المستخدم أولاً، أي استخدام وظيفة Trim () أولاً لتصفية المسافات اليسرى واليمنى لسلسلة إدخال المستخدم. إذا كانت النتيجة سلسلة فارغة، فاستخدم طريقة showMessageDialog لفئة JOptionPane اطلب من المستخدم "الرجاء إدخال المحتوى الرقمي". إذا لم يكن إدخال المستخدم فارغًا، فاستخدم الدالة charAt للحكم على كل حرف في سلسلة إدخال المستخدم إذا لم يكن رقمًا أو مسافة، فسيطالبك "الإدخال يحتوي على محتوى غير رقمي"، ثم استخدم setText. () للدخول إلى مربع إدخال المستخدم يتم مسح البيانات الموجودة فيه. إذا تم اجتياز التحقق، فسيتم إنشاء مصفوفة أحادية البعد من نوع السلسلة، والتي تكون عناصرها هي محتويات سلسلة إدخال المستخدم مفصولة بمسافات. ثم قم بإنشاء مصفوفة أحادية البعد من الأعداد الصحيحة وتخصيص مساحة مساوية لطول مصفوفة السلسلة. يتم بعد ذلك تحويل الإدخال إلى مصفوفة أعداد صحيحة من خلال الدالة valueOf() لفئة Integer. قم بإنشاء متغير عدد أدنى وتهيئته للعنصر الأول في مصفوفة الأعداد الصحيحة. استخدم حلقة 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 = new JLabel();
/**
* إطلاق التطبيق.
*/
public static void main(String[] args) {
EventQueue.invocLater(new Runnable() {
تشغيل الفراغ العام () {
يحاول {
ArrayMinValue window = new ArrayMinValue();
window.frame.setVisible(true);
} قبض (الاستثناء ه) {
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 = new 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 Button = new JButton("/u8BA1/u7B97");
Button.addActionListener(new ActionListener() {
إجراء باطل عام (ActionEvent e) {
do_button_actionPerformed(e);
}
});
Button.setBounds(10, 66, 93, 23);
frame.getContentPane().add(button);
}
محمية باطلة 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);
إذا (!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]) { // استخراج أصغر عدد صحيح
min = numArray[j];
}
}
lblNewLabel_1.setText("أصغر رقم في المصفوفة هو:" + min); // عرض الحد الأدنى للقيمة على التسمية المحددة
}
}
التأثير كما هو موضح في الشكل: