首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java Swing 取得一維陣列最小值:輸入驗證與計算完整範例

     編輯:Java 程式設計入門

程式功能

Swing 視窗應用程式,使用者在文字欄位輸入以空格分隔的整數(如 3 5 2 562 125),點擊「計算」按鈕後,程式驗證輸入合法性(僅允許數字與空格),將字串分割轉換為 int[],遍歷找出最小值並顯示於標籤。

輸入驗證邏輯

  1. trim() 移除首尾空白,空字串提示「請輸入數字內容」。
  2. 逐字元檢查 Character.isDigit(c) || c == ' ',若含非法字元提示「輸入包含非數字內容」並清空欄位。
  3. split(" +") 以一或多個空格分割,避免產生空字串元素。

完整原始碼

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ArrayMinValueDemo extends JFrame {
    private final JTextField inputField = new JTextField(30);
    private final JLabel resultLabel = new JLabel(" ");

    public ArrayMinValueDemo() {
        setTitle("獲取一維陣列最小值");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setBounds(100, 100, 480, 180);
        setLayout(null);

        JLabel hint = new JLabel("請在文本框中輸入多個整數,以空格為分隔符。例如:3 5 2 562 125");
        hint.setBounds(10, 10, 450, 15);
        add(hint);

        inputField.setBounds(10, 35, 450, 25);
        add(inputField);

        JButton btnCalc = new JButton("計算");
        btnCalc.setBounds(10, 70, 90, 25);
        btnCalc.addActionListener(e -> calculateMin());
        add(btnCalc);

        resultLabel.setBounds(115, 70, 350, 25);
        add(resultLabel);

        setVisible(true);
    }

    private void calculateMin() {
        String raw = inputField.getText().trim();
        if (raw.isEmpty()) {
            JOptionPane.showMessageDialog(this, "請輸入數字內容");
            return;
        }
        // 字元合法性檢查
        for (char c : raw.toCharArray()) {
            if (!Character.isDigit(c) && c != ' ') {
                JOptionPane.showMessageDialog(this, "輸入包含非數字內容");
                inputField.setText("");
                return;
            }
        }
        String[] strs = raw.split(" +");
        int[] nums = new int[strs.length];
        for (int i = 0; i < strs.length; i++) {
            nums[i] = Integer.parseInt(strs[i]);
        }
        int min = nums[0];
        for (int n : nums) if (n < min) min = n;
        resultLabel.setText("陣列中最小的數是:" + min);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(ArrayMinValueDemo::new);
    }
}

執行畫面

最小值計算程式執行畫面

教學重點

  • 字串分割 split(" +") 使用正則表達式處理多空格。
  • 輸入驗證採用逐字元檢查,避免 NumberFormatException。
  • Swing 事件處理使用 Lambda 簡化程式碼。
  • 最小值演算法 O(n) 單趟遍歷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved