首页 新闻 搜索 专区 学院

StringBuffer如何拼接为null的字符串对象

0
悬赏园豆:5 [已解决问题] 解决于 2020-12-16 20:13

String tmp = null;
StringBuffer sb = new StringBuffer("");
如果用:
sb.append(tmp); 实际拼接的“null”,也就是为null的字符串,恶如是null字符串对象。

但是,我想要拼接为null的字符串对象,有何办法,请解决,谢谢大家了。

lanto_liang的主页 lanto_liang | 初学一级 | 园豆:93
提问于:2020-10-26 20:23
< >
分享
最佳答案
2

不行的,StringBuffer里面都是字符串,不能是null,null什么也不是:https://blog.csdn.net/xxdw1992/article/details/83376720

从源代码可以看出,其对null进行了处理

public AbstractStringBuilder append(String str) {
        if (str == null)
            return appendNull();
        int len = str.length();
        ensureCapacityInternal(count + len);
        str.getChars(0, len, value, count);
        count += len;
        return this;
    }

private AbstractStringBuilder appendNull() {
        int c = count;
        ensureCapacityInternal(c + 4);
        final char[] value = this.value;
        value[c++] = 'n';
        value[c++] = 'u';
        value[c++] = 'l';
        value[c++] = 'l';
        count = c;
        return this;
    }
收获园豆:5
E行者 | 小虾三级 |园豆:1716 | 2020-10-27 08:11

嗯嗯,所以,我要想拼接null如何办了

lanto_liang | 园豆:93 (初学一级) | 2020-10-27 08:39

@lanto_liang: 你还没看懂,null不是字符串,它什么都不是,不能跟字符串放一起,null和"null"不是一回事,后者才是字符串,而stringbuffer只能存字符串

很简单的例子,null不能跟字符直接相加

如果你想要用null,可以考虑集合,集合的元素可以是null

E行者 | 园豆:1716 (小虾三级) | 2020-10-27 09:52
其他回答(2)
-1

sb.append(tmp)参数tmp按照字符串的值加入的
实在需要这样做的话,,可以如下的方式判断下
sb.append(tmp==null ? "" : tmp)

2012 | 园豆:20686 (高人七级) | 2020-10-27 08:01
0

null不是字符串怎么拼接

除非是字符串null
像这样‘null’

不知道风往哪儿吹 | 园豆:1506 (小虾三级) | 2020-10-27 11:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册