1>昨天,遇到一個問題特令我無語,大意如下:
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));
}
就上面這么簡單的代碼,讓我漫長的調試了一個小時,沒辦法啊,有時候我老用C++的角度去看java的代碼,以上代碼用C++編譯肯定能出
來預期的結果,可JAVA不行啊,最后我才忽然想起來,JAVA中比較非空的字符串不能用=,只能用equal函數, 唉.................
if(!strTemp.substring(i,i+1) .equals("@"))
2>最近,我還發現了一個問題,有很多人老這樣寫代碼:
if(str==null)
雖然這樣寫只要你注意點不會出現什么錯誤,但萬一呢: if(str = null) 這樣寫編譯器也不會報錯,但你可得花費一部分時間來逐一調度了
所以我還是建議新手這樣寫 if(null ==str)(做用等號的比較時把常量寫在等號前面) 如果你一不小心少寫個等于號,編譯編譯器就會報錯
新聞熱點
疑難解答