1. 程式人生 > >怎麼判斷陣列是否為空?怎麼判斷兩個字串不等?怎麼判斷兩個字串相等?

怎麼判斷陣列是否為空?怎麼判斷兩個字串不等?怎麼判斷兩個字串相等?

陣列

首先來看這個案例:

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);
		}