【簡單的學生管理界面】Android的if語句中有字符串判斷

舉個栗子

String S1 = new String("網絡工程");
String S2 = new String("網絡工程");
if (S1==S2){
			data_list.add("16網絡工程1");
			data_list.add("16網絡工程2");
			data_list.add("16網絡工程3");
			data_list.add("16網絡工程4");
			data_list.add("16網絡工程5");
			data_list.add("17網絡工程1");
			data_list.add("17網絡工程2");
			data_list.add("17網絡工程3");
			data_list.add("17網絡工程4");
			data_list.add("17網絡工程5");
			data_list.add("18網絡工程1");
			data_list.add("18網絡工程2");
			data_list.add("18網絡工程3");
			data_list.add("18網絡工程4");
			data_list.add("18網絡工程5");
		}

你說if裏面的判斷成立嗎?答案是不成立的。

因爲在java裏面,相同的值只會佔用一份內存,而這裏S1和S2爲兩個對象,佔用不同內存,所以S1=S2的返回值爲FALSE。

如果這樣設置變量,String S1 = “網絡工程”;String S2 = “網絡工程”;那麼S1=S2則返回TRUE。

那麼對於兩個對象相等的值應該怎麼判斷呢?

我們可以這樣(用equals方法,該方法經常用於字符串判斷,所以爲避免出現不同對象情況,建議常用此方法)

String S1 = new String("網絡工程");
String S2 = new String("網絡工程");
if (S1.equals(S2)){//這樣是返回TRUE
			data_list.add("16網絡工程1");
			data_list.add("16網絡工程2");
			data_list.add("16網絡工程3");
			data_list.add("16網絡工程4");
			data_list.add("16網絡工程5");
			data_list.add("17網絡工程1");
			data_list.add("17網絡工程2");
			data_list.add("17網絡工程3");
			data_list.add("17網絡工程4");
			data_list.add("17網絡工程5");
			data_list.add("18網絡工程1");
			data_list.add("18網絡工程2");
			data_list.add("18網絡工程3");
			data_list.add("18網絡工程4");
			data_list.add("18網絡工程5");
		}

 

發佈了46 篇原創文章 · 獲贊 36 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章