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

编写程序,实现接受用户在文本框中输入的单行数据。这些数据都是整数数字,以空格进行分隔,空格数量不限。并将这些数据分割成一维数组,再从数组中提取最小值显示在界面中。思路是先对用户的输入进行验证,即先用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);       //显示最小值到指定的标签中
    }
}

效果如图所示:

(0)

相关推荐

  • java 获取一组数据中的最大值和最小值

    话不多说,请看代码: public static void main(String[] args) { int array[]={2,4,3,9,1,6,8,5,23}; int max=array[0],min=array[0]; for(int i=0;i<array.length;i++){ if(array[i]>max){ max=array[i]; } } for(int i=0;i<array.length;i++){ if(array[i]<min){ min=ar

  • java利用数组求平均值,最大值,最小值

    复制代码 代码如下: (测试类)    package com.badu; public class Tste { public static void main(String[] args) {          Class5 sa=new Class5("周阿郎",3,2,24);          Class5 [] a=new Class5[5];          a[0]=new Class5("张扬",2,4,34);           a [1]=

  • java求数组最大值和最小数示例分享

    复制代码 代码如下: /** * 判断数组中的最大数 * @param args * @return */public static int getMaxNum(int args[]){int max=0;for(int i=0;i<args.length;i++){if(args[i]>args[max])max=i;}return args[max];} /** * 判断数组中的最小数 * @param args * @return */public static int getMinNu

  • java求三个数的最大值的示例分享

    复制代码 代码如下: import java.util.Arrays; import java.util.Scanner; public class MaxOf3_2 { /* * 获取最大的整数 */     public static int getMaxNum(int...a){         Arrays.sort(a);         int maxNum = a[a.length-1];         return maxNum;     } }

  • JAVA得到数组中最大值和最小值的简单实例

    今天本文与大家分享如何得到数组中的最大值和最小值的实例.很适合Java初学者复习数组的基本用法与流程控制语句的使用.具体如下: 这个程序主要是求得数组中的最大值和最小值 public class TestJava4_3 { public static void main(String args[]) { int i,min,max; int A[]={74,48,30,17,62}; // 声明整数数组A,并赋初值 min=max=A[0]; System.out.print("数组A的元素包括

  • java集合求和最大值最小值示例分享

    复制代码 代码如下: package com.happyelements.athene.game.util; import static com.google.common.base.Preconditions.checkNotNull; import java.util.Collection; import com.google.common.collect.Lists; /** * Math工具类 *  * @version 1.0 * @since 1.0 */public class M

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

    编写程序,实现接受用户在文本框中输入的单行数据.这些数据都是整数数字,以空格进行分隔,空格数量不限.并将这些数据分割成一维数组,再从数组中提取最小值显示在界面中.思路是先对用户的输入进行验证,即先用trim()函数过滤用户输入字符串的左右空格,若结果为空字符串则用JOptionPane类的showMessageDialog方法提示用户"请输入数字内容".若用户输入非空则使用charAt函数对用户输入字符串中的每一个字符进行判断,若其既非数字也非空格则提示"输入包含非数字内容&

  • java 获取mac地址的两种方法(推荐)

    我在网上找了一下获取mac地址的方法,找了两种比较不太一样的方法. 第一种 public static void main(String[] args) throws Exception { InetAddress ia = InetAddress.getLocalHost(); System.out.println(getMACAddress(ia)); } private static String getMACAddress(InetAddress ia) throws Exception

  • PHP多维数组转一维数组的简单实现方法

    本文实例讲述了PHP多维数组转一维数组的简单实现方法.分享给大家供大家参考,具体如下: php语言本身没有将多维数组转为一维数组的函数,但是我们可以自己写一个php函数来实现将多维转一维的功能. 运用了递归,简单粗暴,整个函数体9行代码就实现了该功能,php源码如下: $multi = array( array( array( 'wo', 'shi' ), 'php' ), 'cheng', array( array( 'xu', 'yuan', ) ), '!' ); $multi = arr

  • Java获取当前系统事件System.currentTimeMillis()方法

    System.currentTimeMillis()产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数,Date()其实就是相当于Date(System.currentTimeMillis()),因为Date类还有构造Date(longdate),用来计算long秒与1970年1月1日之间的毫秒差. 得到了这个毫秒数,我们自己也可以算起现在的年月日周时,但是这不是我们去计算的,因为有Calendar.Calendar最终结出的结果就是年月日周时时区. System.curre

  • java获取客服端信息的方法(系统,浏览器等)

    如下所示: String agent = request.getHeader("user-agent"); System.out.println(agent); StringTokenizer st = new StringTokenizer(agent,";"); st.nextToken(); String userbrowser = st.nextToken(); System.out.println(userbrowser); String useros =

  • java 获取HttpRequest Header的几种方法(必看篇)

    在开发应用程序的过程中,如果有多个应用,通常会通过一个portal 门户来集成,这个portal  是所有应用程序的入口,用户一旦在portal 登录之后,进入另外一个系统,就需要类似的单点登录(SSO). 进入各个子系统的时候,就不需要再次登录, 当然类似的功能,你可以通过专业的单点登录软件来实现,也可以自己写数据库token 等方式来实现.其实还有一个比较简单的方法,就是通过 portal 封装已经登录过的用户的消息,写到http header 之中,然后把请求forward 到各个子系统中

  • php实现给二维数组中所有一维数组添加值的方法

    本文实例讲述了php实现给二维数组中所有一维数组添加值的方法.分享给大家供大家参考,具体如下: 给二维数组中所有的一维数组添加值(索引和关联) $shop = array( 0=>array(0=>1,1=>2,2=>3,3=>4) ,1=>array(0=>1,1=>2,2=>3) ,2=>array(0=>1,1=>2,2=>3) ); print_r($shop); //示例 1:引用循环变量的地址赋值 foreach($

  • Java获取服务器IP及端口的方法实例分析

    本文实例讲述了Java获取服务器IP及端口的方法.分享给大家供大家参考,具体如下: 前几天写过一个获取远程服务器的IP和端口的程序,从网上查了一些资料顺便加一些自己的理解,希望对大家有所帮助: struts2 获取request HttpServletRequest requet=ServletActionContext.getRequest(); requet.getScheme()+"://"+requet.getServerName()+":"+requet.

  • Java获取json数组对象的实例讲解

    如下所示: JSONArray jsonArray1 = jsonObject.getJSONArray("result"); for (int i = 0; i < jsonArray1.length(); i++) { JSONObject temp = (JSONObject) jsonArray1.get(i); String x = temp.getString("x"); String y = temp.getString("y"

  • java 获取当前时间的三种方法

    总结java里面关于获取当前时间的一些方法 System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的.例如: 1543105352845 我们可以将时间戳转化成我们易于理解的格式 SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z"); Date date = n

随机推荐