我想到了从here检查数组的最大/最小值。它可以创造奇迹,但我想知道是否有办法将代码拆开并使其更紧凑。也许有某种命令?我不知道,这就是我问你的原因。
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]);
}
}
}
答案 0 :(得分:4)
此示例将帮助您简化代码
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]);
答案 1 :(得分:0)
这个想法与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);
此代码不完整,您在使用NumberFormatException
Integer.parseInt(str)
我使用Set因为你只想检查最小值和最大值,如果你想做其他事情,比如计算平均值,列表当然更好。