目录
1.随机生成一个指定范围的随机数
方式一:
获取一个两位随机数 10 ~ 99 ;
int value = (int) ( Math.random() *90+10 ) ;
总结公式:
获取随机数的取值范围为 a~b
( int ) (Math.random() *(b-a+1)+a)
方式二:
获取一个两位随机数 0 ~ 99 ;
new Random().nextInt(10) ; 里面填10 , 就随机生成 0 ~ 9
既
int key = new Random().nextInt(100) ; 随机生成的为0 ~ 99
2.对数组进行升序排列,即从小到大的顺序
Arrays.sort()
Arrays类的sort()方法 可以对数组进行升序排序
使用场景1:
单纯的对数组进行排序
int[]array3={4,2,5,8,10};
char[]array4={'a','p','e','f','b'};
String[]array5={"asa","wqd","wdqf","qwer"};
Arrays.sort(array3);
Arrays.sort(array4);
Arrays.sort(array5);
System.out.println(Arrays.toString(array3));
System.out.println(Arrays.toString(array4));
System.out.println(Arrays.toString(array5));
使用场景2:
有3个班级 , 分别对1班,2班,3班的学员成绩进行升序排序并输出
int[][]a =new int [][]{{80,60},{70,54,98},{77,59}}; //分别代表三个班级学员成绩
for(int i = 0; i<a.length;i++){
Arrays.sort(a[i]); //进行升序排序
System.out.println((i+1)+"班成绩排序后:");
for(int j = 0;j<a[i].length;j++){
System.out.println(a[i][j]);
}
}
场景1
场景2
3.一串数字 i , 获取指定位数上的值
//有一串数字 i
int i = 123456789;
int ge = i %10; //获取个位的值 结果为 9
int shi = i/10%10; //获取十位的值 结果为 8
int bai = i /100%10;//获取百位的值 结果为 7
int qian = i / 1000%10 ;//获取千位的值 结果为 6
//以此类推 ...
4.随机给出四个不同的数字, 能组合出多少组不同的三位数?
//随机给出四个数字
String a = "1";
String b = "6";
String c = "7";
String d = "9";
//放入集合中,方便循环, 也可放入数组中, 此处不必纠结
ArrayList <String>list = new ArrayList<>();
list.add(a);
list.add(b);
list.add(c);
list.add(d);
int count = 0; // 计算共组合出多少组
ArrayList lis = new ArrayList<>();
for (int i = 0; i < list.size(); i++) { //代表百位
String bai = list.get(i);
for (int j = 0; j < list.size(); j++) { //代表十位
String shi = list.get(j);
for (int k = 0; k < list.size(); k++) { //代表个位
String ge = list.get(k);
// 关键点 : 要求 百位,十位,个位 互不相同 又因为各个位都是循环遍历的四个不同的数, 所以不会出现重复的情况
// 此时只需考虑让三个数不同即可 符合条件就进入if
if (!bai.equals(shi) && !bai.equals(ge) && !shi.equals(ge)){
StringBuilder stringBuilder = new StringBuilder(ge);
stringBuilder.append(shi);
stringBuilder.append(bai);
lis.add(stringBuilder);
count++;
}
}
}
}
System.out.println("总共组成"+count+"个数");
System.out.println(lis.toString()+"----"+lis.size());
结果: