新建一个studet类,导入以下类
import java.util.Arrays;
import java.util.Scanner;
import java.util.regex.Pattern;
import org.hamcrest.Matcher;
main函数
public static void main(String[] args){
String[][] student =new String[5][2];
String[][] studentsort =new String[5][2];
System.out.println("请输入学生的学号姓名(格式20xxxxxx张-三):");
setinfor(student);
System.out.println("输入学生为:");
showArray(student);
studentsort=sortid(student);
System.out.println("按学号排序为:");
showArray(studentsort);
}
获得数据的方法
public static void setinfor(String[][] student) {
Scanner input = new Scanner(System.in);
for (int i=0; i<5;i++) {
for(int j=0;j<2;j++) {
student[i][j]=input.next();
}
if (!judgeid(student[i][0])||!judgename(student[i][1])) {
System.out.println("数据格式错误,请重新输入");
i--;
}
}
}
判断学号姓名格式是否正确的方法
public static boolean judgeid(String student) {
return student.matches("\\d{8}");
//System.out.println("输入学生学号有误,请重新输入");
}
public static boolean judgename(String student) {
return student.matches(".*-*");
//System.out.println("输入学生姓名有误,请重新输入");
}
按学号排序的方法
public static String[][] sortid(String[][] student){
int[] id =new int[5];
String[][] student1 =new String[5][2];
for (int i=0;i < 5;i++)
id[i]=Integer.valueOf(student[i][0]);
Arrays.sort(id);
for(int k = 0; k < 5;k++)
for(int j = 0; j < 5;j++) {
if(String.valueOf(id[k]).equals(student[j][0])) {
student1[k][0]=student[j][0];
student1[k][1]=student[j][1];
continue;
}
}
return student1;
}
输出二维数组的方法
public static void showArray(String[][] student){
for (int i=0; i<5;i++) {
System.out.println(student[i][0]+" "+student[i][1]);
}
}