1>昨天,遇到一個(gè)問題特令我無語,大意如下:
String str ="3a5b@";
String strTemp =str;
for(int i=0;i<strTemp.length();i++){
if(strTemp.substring(i,i+1) !="@") 遇到@不打印
System.out.PRint(strTemp.substring(i,i+1));
}
就上面這么簡單的代碼,讓我漫長的調(diào)試了一個(gè)小時(shí),沒辦法啊,有時(shí)候我老用C++的角度去看java的代碼,以上代碼用C++編譯肯定能出
來預(yù)期的結(jié)果,可JAVA不行啊,最后我才忽然想起來,JAVA中比較非空的字符串不能用=,只能用equal函數(shù), 唉.................
if(!strTemp.substring(i,i+1) .equals("@"))
2>最近,我還發(fā)現(xiàn)了一個(gè)問題,有很多人老這樣寫代碼:
if(str==null)
雖然這樣寫只要你注意點(diǎn)不會(huì)出現(xiàn)什么錯(cuò)誤,但萬一呢: if(str = null) 這樣寫編譯器也不會(huì)報(bào)錯(cuò),但你可得花費(fèi)一部分時(shí)間來逐一調(diào)度了
所以我還是建議新手這樣寫 if(null ==str)(做用等號的比較時(shí)把常量寫在等號前面) 如果你一不小心少寫個(gè)等于號,編譯編譯器就會(huì)報(bào)錯(cuò)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注