JAVA中的比较字符串问题
2009-03-26 20:55:18 来源:WEB开发网核心提示:1>昨天,遇到一个问题特令我无语,大意如下:String str ="3a5b@";String strTemp =str;for(int i=0;i<strTemp.length();i++){ if(strTemp.substring(i,i+1) !="@")
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)(做用等号的比较时把常量写在等号前面) 如果你一不小心少写个等于号,编译编译器就会报错
更多精彩
赞助商链接