StringUtils.isNotBlank 返回为true,实际数据为空

碰到一个很奇怪的现象,非blank字段,打印不出数据
if(StringUtils.isNotBlank(udp2.getValue())){
paramsMap.put("udp2","%"+udp2.getValue()+"%");
}
打印map的数据,key为udp2时,value是 %%,
就是这个字符是个什么字符,通过了校验,但是实际打印没有东西?\r,\n等都试过,没有出现这种bug。
请问有没有碰到过这种问题,求解惑,谢谢!

两次 getValue值一样吗?建议在外边弄个变量接收这个 getValue,后边用这个Value,不要重复get试试看

官方的文档显示的不应该会有这个bug

img

空(空格)字符串吧。

StringUtils是哪个包里的 自己写的?
看看源码就知道了 或者在里面打个断点 看看执行的时候内容是什么

"%"+udp2.getValue()+"%" 的结果为%%,所以udp2.getValue()的值为“”

if(StringUtils.isNotBlank(udp2.getValue())){
  paramsMap.put("udp2","%"+udp2.getValue()+"%");
}

改成

String uTemp = udp2.getValue();
if(StringUtils.isNotBlank(uTemp)){
  paramsMap.put("udp2","%"+uTemp+"%");
}

试试看,或者debug看下数据都是多少