System.out.println("".equals(""));
这个返回值是false,这两个字符串都不是空字符串,会出现在手机号码的前后
js也会遇到同样的问题
如果针对手机号,可以用正则匹配下,去掉数字以外的字符,str.replaceAll("[^0-9]", "")
讲道理System.out.println("".equals(""));的输出值是true啊
toString().trim() 自己整理字符串 比较吧。
返回true没毛病呀老铁
仅仅是System.out.println("".equals(""));输出是true没问题啊
如果值是通过读取其他途径得到的,比如文件,可能存在因编码导致的隐藏非法字符
System.out.println("".equals(""));就应该是返回true
把字符串加上trim()后再试试
System.out.println("".equals(""));
我执行这句,返回时false,
dasfdasfdsafasf
""字符串在Java中是对象在作怪,可以toString试试
复制我的代码执行看下,你们说的我都知道
"字符串在Java中是对象在作怪,可以toString试试
打印了下对应的assii码,对应的分别是45跟44,所以不相等,不过不知道题主是怎么输入的
下面是打印的代码
System.out.println((byte)("".charAt(0))+":"+"".length()); //输出结果是45:1
System.out.println((byte)("".charAt(0))+":"+"".length()); //输出结果是44:1
System.out.println((char)45); //输出结果是-
System.out.println((char)44); //输出结果是,
空字符串里面是不是有多出的空格或其他原因,把字符串加上trim()应该可以解决!
两种方法 1: 如果是手机号 你可以根据正则表达式来限时输入 2: 你可以把拿到的值进行一个空格的处理 trim()
返回false的是jdk1.7,1.8就是true
你这个是怎么敲出来的,我复制过来,执行确实是false;
手敲,一模一样,就是true