繁体   English   中英

如何获取 String[] 数组的最大值/最小值?

[英]How to get the max/min value of a String[] array?

我想从这里检查数组的最大值/最小值。 它创造了奇迹,但我想知道是否有办法将代码拆分并使其更紧凑。 也许有某种命令? 我不知道,这就是我问你的原因。

public static void main(String[] args) {
    String[] input = JOptionPane.showInputDialog("What are you grades this month?\nThey must be seperated by spaces.").split(" ");

    int smallest = Integer.parseInt(input[0]);
    int largest = Integer.parseInt(input[0]);

    for (int i = 1; i < input.length; i++) {
        if (Integer.parseInt(input[i]) > largest) { 
           largest = Integer.parseInt(input[i]); 
        }
        else if (Integer.parseInt(input[i]) < smallest) { 
          smallest = Integer.parseInt(input[i]); 
        }
    }
}

此示例将帮助您简化代码

Integer [] myIntArray = new Integer[]{0, 5, 2, 11};
Arrays.sort(myIntArray);

//Output smallest 
System.out.println(myIntArray[0]);

//Output largest
System.out.println(myIntArray[myIntArray.length - 1]);

这个想法与 Vasco 的相同,但我的代码以字符串数组开头并使用 Set :

String[] gradesAsString = { "12", "14", "8", "43"};
Set<Integer> grades = new HashSet<>(gradesAsString.length);

for(String grade : gradesAsString) {
    grades.add(Integer.parseInt(grade));
}

// Sort the collection and get the first (as min) and last (as max) is better for performance
int max = Collections.max(grades);
int min = Collections.min(grades);

这段代码不完整,你应该在使用Integer.parseInt(str)时捕获NumberFormatException

我使用 Set 是因为你只想检查最小值和最大值,如果你想做其他事情,比如计算平均值,当然列表更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM