細節一:字符串、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];
遍歷二維數組需要用雙重循環
細節一:字符串、switch、默認值、數組