Java进阶(二十)解疑答惑之何时字符串才算真正为空?

解疑答惑之何时字符串才算真正为空?

在一次编码过程中,有一个现象一直困扰着自己,经过后台的不断调试,才发现原来有时候字符串的空非空。测试代码如下:

 // medname可为药品名称或药品ID
String medname  =  request.getString("medname").trim();
logger.info("medname.length():" + medname.length());
logger.info("mednameisNULL:" + (medname == null));

当自己在前台什么都不输入的时候,输出结果如下:

Java进阶(二十)解疑答惑之何时字符串才算真正为空?

这样自己就感到费解了,命名自己什么都没有输入啊,并且经过trim()【trim():去掉字符串首尾的空格。】方法的操作,按理说应该为空才对。

然后自己想,是不是因为没输入其实代表的是输入的空字符串,而空字符串不同于null。于是自己就写了如下测试语句:

logger.info("mednam:" + (medname == ""));

测试结果如下:

Java进阶(二十)解疑答惑之何时字符串才算真正为空?

果然印证了自己的想法。其果然是一个空字符串!

以后得注意一下这个问题了,否则会很容易留下BUG的。

有关空字符串与null的区别,详见博文“java 空字符串与null区别”

上一篇:phpredis 报错 “Function Redis::setTimeout() is deprecated” 解决方法


下一篇:Android萌新必看:读一遍Retrofit源码,这里全是细节!