细节一:字符串、switch、默认值、数组
1、输入一个字符串 s 判断与字符串 str 是否相等,用:变量.equals(变量)
2、a . equals( b ),String类型比较是否相等
如果a为null,就会报错 NullPointerException
解决办法:将确定不为null的放在前面
3、取max到min之间的随机数,(Math.random()*(max-min+1)+min)
4、switch(num){
case 1:
System.out.println("123");
//break;
case 2:
System.out.println("456");
break;
}
当num=1时,如果case 1 没有break,将执行向下穿透最后将输出:123
456
5、char类型的数组的数组项默认值为:空(表现出来是空格)
整数型和浮点型数组的数组项默认值为:0
String类型的数组的数组项默认值为:null
boolean类型的数组的数组项默认值为:false
6、String a = "Java";
String b = "Length";
a.compareTo(b);
compareTo按照之母顺序比较两个字符串的先后顺序,返回结果int类型
先比较第一个字母,以b的首字母L作为x轴的0坐标,a的首字母J在L的前两位,则返回-2
若第一个字母相同,则比较第二个字母,直到找到不同或比较完最后一个字母
如果字母都相同则返回0
如果String a = "arr";
String b = "arrs";
a.compareTo(b);
返回值为-1
7、给数组从小到大排序
int[] arr = {5,6,1,9,3,7,21,8,4};
Arrays.sort(arr);
8、冒泡排序
int [] arr = {5,9,3,6,1,7,2,8};
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 a = arr[j];
arr[j] = arr[j+1];
arr[j+1] = a;
}
}
}
9、交换排序
int [] arr = {5,9,3,6,1,7,2,8};
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j]) {
int a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
}
}
10、选择排序
int [] arr = {5,9,3,6,1,7,2,8};
for (int i = 0; i < arr.length-1; i++) {
int k = i;
for (int j = k+1; j < arr.length; j++) {
if(arr[j]<arr[k])
k = j;
}
if(i != k) {
int a = arr[i];
arr[i] = arr[k];
arr[k] = a;
}
}
11、可以将二维数组看作,一个点在y轴x轴的坐标(int[y][x])
声明二维数组
int [][] arr = new int[5][5];
赋值
arr[0][0] = 1;
arr[0][1] = 1;
...
声明并赋值
int [][] arr = {{1,1,1,1,1},{2,2,2,2,2},{3,3,3,3,3},{4,4,4,4,4},{5,5,5,5,5}};
第一个长度一定要赋值,第二个长度声明时可以不赋值(长度不固定)
声明
int [][] arr = new int [3][];
赋值,要先声明后面的长度,才能赋值
arr[0] = new int[3];
遍历二维数组需要用双重循环