求助JAVA的字符串匹配问题
有一问题不解,本人写一程序,将一个字符串从主程序传到子类,然后又通过子类里的methode返回回来,然后字符串能够成功返回。可是问题出现了,之后想通过if语句判断字符串是否为空,可是现在IF语句根本不起作用,明明通过输出字符串就是这么长,可是通过if(xx=="")就是匹配不到,难道传到子类里又加了特殊的无显示的控制符?研究了半个钟头,我都快要崩溃了,哪位大侠能指点一下迷津? if(x== null) 多谢,嘿嘿,又花了十五分钟,在网上找到了原因。“按照java语言的本意来说:如果没有重写(override)新类的equals(),则该方法和 == 操作符一样在两个变量指向同一对象时返回真,但是java推荐的是使用equals()方法来判断两个对象的内容是否一样,就像String类的equals()方法所做的那样:判定两个String对象的内容是否相同,而==操作符返回true的唯一条件是两个变量指向同一对象。”
文选你写的只是一个判断,如果用控制台输入字符串应该这样写
if(xxx == null || xxx.equals(""))
而不能这样写
if(xxx== null || xxx==""), 偶就范了这个错误. 嘿嘿,不好意思,我是一边跟女朋友netmeeting,一边看你的主贴。
null跟""的区别就在于:当一个String被声明的时候(String xx),它是完全空的;而""则表示字符串里是有element的,而这个唯一的element就是"" 好啦,女朋友下线了。
我想edc应该做得跟daxia的要求差不多了:)
下面这张图就是null跟""的区别: 明白了,edc你是通过取字符串的长度来判断是否为空,而我后来是通过String里的equals函数来比较字符串的内容是否为空 if(toTest == null || toTest.equals("")),不过异曲同工拉,只要不要用“==”就好了,因为这个是严格意义上的对象完全相等,对于字符串的匹配比较完全无用
页:
[1]