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

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

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

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

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

 

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

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

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

      测试结果如下:

 

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

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

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

你可能感兴趣的:(空字符串与空的区别)