WEB开发网
开发学院WEB开发Jsp JAVA中的比较字符串问题 阅读

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)(做用等号的比较时把常量写在等号前面) 如果你一不小心少写个等于号,编译编译器就会报错

Tags:JAVA 比较 字符串

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接