十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
思路如下:
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了凤阳免费建站欢迎大家使用!
1,录入字符串
2,使用正则表达式分割
3,转换为int数组
4,排序
5,拼接,代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class Demo8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();// 录入字符串
String[] strs = str.split(",");// 使用正则表达式进行分割
int[] is = new int[strs.length];
for (int i = 0; i strs.length; i++) {// 遍历String数组,赋值给int数组
is[i] = Integer.parseInt(strs[i]);
}
Arrays.sort(is);// 使用数组工具类进行排序,也可以自己使用冒泡或选择排序来进行排序
StringBuffer sb = new StringBuffer();
for (int i = 0; i is.length; i++) {// 遍历进行拼接
if (i == is.length - 1) {
sb.append(is[i]);
} else {
sb.append(is[i] + ",");
}
}
System.out.println(sb.toString());
}
public class SortNumString {//定义SortNumString方法 public static String[] sortNumStr(String numStr){// 定义一个String[](数组)为返回值的类并且带参数(String numStr) if(numStr==null||numStr.trim().equals(""))//if判断如果numStr为空值 return null; //就返回(return)空(null) StringTokenizer mToken = new StringTokenizer(numStr);//定义变量 String[] result = new String[mToken.countTokens()];//实例化变量把它赋给一个数组 int i = 0;//定义i while(mToken.hasMoreTokens()){ //进行while循环 result[i] = mToken.nextToken();//从i即0开始从数组取值 i++;//每取出一个值就自增+1取下个值 } return result;//返回这组值 } public static void main(String[] args){//主方法 String[] s = sortNumStr("99 345 8 888 55 0 -9999 30");//为这个数组赋值 int[] ii = new int[s.length];//定义数组ii规定长度为String[] result数组的个数 for(int i = 0;iii.length;i++ ){//进行for循环 定义i,并且i小于int[] ii数组的长度,每循环一次自增一次i++ ii[i] = Integer.parseInt(s[i]); //为int[]赋值并强转为Integer类型 } Arrays.sort(ii);//对指定的数进行排序 //ASC for(int i = 0; i ii.length;i++){//循环输出int[] ii数组的值 if (i 0) {//如果i0 System.out.print(" ");//则输出“ ” } System.out.print(ii[i]);//否则输出int[] ii数组的值 } /* //DESC for(int i = s.length -1;i=0;i--){ if (i s.length-1) { System.out.print(" "); } System.out.print(ii[i]); }*/ } }
升序你就直接用Arrays.sort(....)就可以了。要降序的话,你得自己实现Comparator ,然后重写compare方法就可以了,给个例子:
# class ByWeightComparator implements Comparator {
# public final int compare(Object c1, Object c2) {
# if(((Cat)c1).getWeight() ((Cat)c2).getWeight()) {
# return 1;
# } else if(((Cat)c1).getWeight() == ((Cat)c2).getWeight()) {
# return 0;
# } else return -1;
# }
# }
import java.util.*;
public class Test {
public static void main(String[] args) {
int stuNum = 4;
int classNum = 3;
double[] score = new double[stuNum];
double sum = 0;
double[] avgrage = new double[classNum];
double[] arr = new double[classNum * stuNum];
Scanner input = new Scanner(System. in );
for (int i = 0; i classNum; i++) {
sum = 0;
System.out.println("请输入第" + (i + 1) + "个班级成绩:");
for (int j = 0; j score.length; j++) {
System.out.print("第" + (j + 1) + "个学员的成绩:");
double s = input.nextDouble();
score[j] = s;
sum += s;
arr[i * stuNum + j] = s;
}
avgrage[i] = sum / score.length;
System.out.println("第" + (i + 1) + "个班级参赛学员的平均分是:" + avgrage[i] + "\n");
}
input.close();
System.out.println("原序: " + Arrays.toString(arr));
//升序
for (int i = 0; i arr.length; i++) {
for (int j = i + 1; j arr.length; j++) {
if (arr[i] arr[j]) {
double tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println("升序: " + Arrays.toString(arr));
//降序
for (int i = 0; i arr.length; i++) {
for (int j = i + 1; j arr.length; j++) {
if (arr[i] arr[j]) {
double tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println("降序: " + Arrays.toString(arr));
}
}
单纯的字符串或者数字排列可用Collections.sort(object o)方法,这样方便。
如果是要对对象中的某一进行排序,则可实现Comparator接口,复写其中的Compare方法;然后调用Collections.sort(object 0 , Comparator c)方法;
说的只是思路,具体问题可以查看帮助文档。