package 实训3;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class 实训3_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
DecimalFormat df=new DecimalFormat("#.0");
System.out.println(" ==== 求和及最大最小值 ====");
System.out.println("请输入逗号分隔的多个数值:");
List<Integer> list = new ArrayList<Integer>();
List<String> listErr = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
if (read.indexOf(",") > -1) {
read = read.replaceAll(",", ",");
}
if (read.indexOf(",") > -1) {
String[] arg = read.split(",");
for (String key : arg) {
try {
int int_key = Integer.parseInt(key);
list.add(int_key);
} catch (Exception e) {
listErr.add(key);
}
}
if (!listErr.isEmpty()) {
System.out.println("发现非数字字符串:" + listErr.toString() + "已经排除");
}
if (!list.isEmpty()) {
//System.out.println("检测到有效数据:" + list.toString());
Integer[] strings = new Integer[list.size()];
list.toArray(strings);
List<Integer> listresult = Arrays.asList(s(strings));
System.out.println("按升序排序后的数值:\n" + listresult.toString());
System.out.println("总个数:" + listresult.size());
int count = 0;
for (int i : listresult) {
count += i;
}
System.out.println("各数和:" + df.format((count)));
System.out.println("最大值:" + df.format(listresult.get(listresult.size() - 1)));
System.out.println("最小值:" + df.format(listresult.get(0)));
}
} else {
System.out.println("抱歉,输入有误");
}
}
public static Integer[] s(Integer[] arr) {
for (int i = 0; i < arr.length - 1; i++) {// 外层循环控制排序趟数
for (int j = 0; j < arr.length - 1 - i; j++) {// 内层循环控制每一趟排序多少次
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
}