zoukankan      html  css  js  c++  java
  • Java判断字符串相等的办法(不能直接用==判断)

    用惯了“==”来判断变量的值是否相等,这回,判断两个字符串变量的内容是否相同,毫不犹豫就想到了“==”了。

          调试内容是这样的,我们用户注册页面有两个框分别是输入密码(设为变量a)和密码确认(设为变量b)的,那么在后台接收用户信息后需要验证这两个密码是否相同,只有相同了才能通过,结果,我们的程序在我填写无误的情况下进入出错页面,debug之后,发现后台接收到的a和b中的字符串内容是完全一致的,但是在if语句if(a==b)进行两者的判断时,竟然判断结果是false,我仔细比较了a和b两个变量的具体内容,发现,除了有一个用于标识变量的id号不同外,其余内容都相同,很是不解,于是问了TL,才明白了缘由。事实上,用“==”来判断字符串变量是否相等时,它是通过判断两个变量的标识(也就是id号)来决定的,即如果a和b同时指向的是内存中的同一个对象,那么他们的id号是相同的,内容当然也是相同的,而我们这里要判断的是两个不同对象中的字符串内容是否相等,很明显,是不同的对象,那么,用“==”来判断的话,结果肯定都是false了。

     

       既然这样,上面提到的那种情况就不能用“==”了,而应当另寻它径。有一个方法,那就是调用String类自带的equals方法,这个方法就是通过比较变量中的字符串内容来比较字符串是否相等的,刚好满足要求,所以,这种情况,就应该使用equals方法了。其实,大部分情况下,我们要比较的都会是不同字符串对象的内容,所以,比较字符串是否

  • 相关阅读:
    hdu 4686 Arc of Dream
    监测系统的情况,你必须知道的两三事!
    [置顶] access函数-linux
    IE9 "CSS 因 Mime 类型不匹配而被忽略“问题
    [置顶] mkdir函数-linux
    adb 异常报错----adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *
    Hbase深入学习(一) 什么是hbase
    Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
    组队练习赛(Regionals 2012, North America
    CSS 注意事项
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318646.html
Copyright © 2011-2022 走看看