怎麼判斷陣列是否為空?怎麼判斷兩個字串不等?怎麼判斷兩個字串相等?
阿新 • • 發佈:2018-11-10
陣列
首先來看這個案例:
String sz[]=new String[8];
if(sz!=null){
System.out.println("hahah1");
}
String szz[]=null;
if(szz!=null){
System.out.println("wwww");
}
執行結果是:
hahah1
注意:
如果給定陣列長度,那麼這個數組裡面即使沒有值,也不為空;因為這個數組裡麵包含了8個元素,及時每個元素的值是null;
總結:
如果是初始化了的陣列肯定不為空,即使它裡面什麼東西都沒有,如果你想判斷裡面是否賦值了,用if(sz!=null){}肯定不對;
而是用sz[0].equals("")||sz[0]==null來進行判斷;
如果僅僅是String [] sz=null;用if(sz!=null){}是可行的,
一般情況下,是不能先String [] sz=null;sz[0]="1";
會報錯,空指標異常,因為你沒有給元素分配地址;
字串
字串判斷是否為空,一般都是if(str!=null&&"".equals(str)){}
但是如果判斷兩個字串不相等?
那麼就是
if(str1!=str2&&!(str1.equals(str2))){}
以上我都知道,可是我還是在栽跟頭了,原因是,多個判斷不等的條件:
案例:
查詢資料庫裡number='0065'的最後一條記錄,把即將插入編號'0065'的記錄和上一條記錄相比,如果第二列、第三列、第四列
第五列、第六列發生了變化,就執行插入操作;
也就是說,只要存在著以上某一列(最後一條記錄和即將插入的記錄)不相等的話,就執行插入操作;
我的相關程式碼如下:
if(!(szz[1].equals(szs[1]))||szs[5].equals("255")||(!(szs[2].equals("255")) ||!(szs[2].equals("0")))||(!(szs[3].equals("255"))||!(szs[3].equals("0")))){ //滿足以上條件之一才可以插入資料庫中 String sql1= "insert into sen(number,bs,xl,lpower,upower,alarm,data,time,state) values(?,?,?,?,?,?,?,?,?)"; Tools.update(sql1, szs); }
但是在實踐過程中沒有起到篩選的作用,也不知道哪裡出了問題?
對於多個條件寫在一起的,最好的辦法,是把每個條件都配一個if
if(szs[5].equals("255")){
System.out.println("2");
}
if(!(szs[2].equals("255"))){
System.out.println("3");
}
if(!(szs[2].equals("0"))){
System.out.println("4");
}
if(!(szs[3].equals("255"))){
System.out.println("5");
}
if(!(szs[3].equals("0"))){
System.out.println("6");
}
執行程式就可以看出哪裡有問題;
找到問題以後修改自己的程式碼如下:
if(!(szz[1].equals(szs[1]))||szs[5].equals("255")||(!(szs[2].equals("255"))&&!(szs[2].equals("0")))||(!(szs[3].equals("255"))&&!(szs[3].equals("0")))){
//滿足以上條件之一才可以插入資料庫中
String sql1= "insert into sen(number,bs,xl,lpower,upower,alarm,data,time,state) values(?,?,?,?,?,?,?,?,?)";
Tools.update(sql1, szs);
}