举个例子来说:
String s = null;
s = s+"hello!";
System.out.println(s);
则打印的结果为“nullhello!”而不是“hello!"
原因是s = s+“hello!”;等价于 s = String.valueOf(s)+“hello!”;
而String.valueOf()函数的源码如下:
public static String valueOf(char data[], int offset, int count) {
return new String(data, offset, count);
}
即 String.valueOf(s)的返回值为一个”null“字符串,所以打印结果为“nullhello!”。
这种情况下如果想要的结果是“hello!",考虑先做判断
if(StringUtils.isBlank(s)){
s=“hello!";
}else{
s = s+"hello!";
}
本文解析了Java中字符串连接操作的困惑,重点讲解了`s=s+“hello!”`为何导致输出“nullhello!”,并给出了通过StringUtils判断处理null的解决方案。
625

被折叠的 条评论
为什么被折叠?



