Java获取一维数组的最小值实现方法

2022-10-20,,,,

编写程序,实现接受用户在文本框中输入的单行数据。这些数据都是整数数字,以空格进行分隔,空格数量不限。并将这些数据分割成一维数组,再从数组中提取最小值显示在界面中。思路是先对用户的输入进行验证,即先用trim()函数过滤用户输入字符串的左右空格,若结果为空字符串则用joptionpane类的showmessagedialog方法提示用户"请输入数字内容"。若用户输入非空则使用charat函数对用户输入字符串中的每一个字符进行判断,若其既非数字也非空格则提示"输入包含非数字内容",然后使用settext()函数将用户输入框中的数据清空。若通过验证则创建一个字符串型一维数组,其元素是用户输入字符串以空格分隔后得到的内容。然后创建一个整型一维数组,并为其开辟等同于字符串型数组长度的空间。然后通过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;

public class arrayminvalue {

    private jframe frame;
    private jtextfield textfield;
    jlabel lblnewlabel_1 = new jlabel();
    /**
     * launch the application.
     */
    public static void main(string[] args) {
        eventqueue.invokelater(new runnable() {
            public void run() {
                try {
                    arrayminvalue window = new arrayminvalue();
                    window.frame.setvisible(true);
                } catch (exception e) {
                    e.printstacktrace();
                }
            }
        });
    }

    /**
     * create the application.
     */
    public arrayminvalue() {
        initialize();
    }

    /**
     * initialize the contents of the frame.
     */
    private void initialize() {
        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() {
            public void actionperformed(actionevent e) {
                do_button_actionperformed(e);
            }
        });
        button.setbounds(10, 66, 93, 23);
        frame.getcontentpane().add(button);    
    }
    protected void do_button_actionperformed(actionevent e) {
        string arraystr = textfield.gettext().trim();           //去除左右空格
        if(arraystr.equals("")){
            joptionpane.showmessagedialog(null, "请输入数字内容");
            return;
        }
        for (int i = 0; i < arraystr.length(); i++) {                // 过滤非法输入
            char charat = arraystr.charat(i);
            if (!character.isdigit(charat) && charat != ' ') {
                joptionpane.showmessagedialog(null, "输入包含非数字内容");
                textfield.settext("");
                return;
            }
        }
        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);       //显示最小值到指定的标签中
    }
}

效果如图所示:

《Java获取一维数组的最小值实现方法.doc》

下载本文的Word格式文档,以方便收藏与打印。