map调用toString()方法,返回字符串拼接有空格

测试代码:


输出:

    [123, 456]

输出后,拼接字段的首部,会有一个空格。

Map toString()源码

public String toString() {
        Iterator<Entry<K,V>> i = entrySet().iterator();
        if (! i.hasNext())
            return "{}";

        StringBuilder sb = new StringBuilder();
        sb.append('{');
        for (;;) {
            Entry<K,V> e = i.next();
            K key = e.getKey();
            V value = e.getValue();
            sb.append(key   == this ? "(this Map)" : key);
            sb.append('=');
            sb.append(value == this ? "(this Map)" : value);
            if (! i.hasNext())
                return sb.append('}').toString();
            sb.append(',').append(' ');
        }
    }

源码在拼接数据时,不仅用了','而且也加上了空格。

解决办法:

    1.在源码中,去掉“append(' ')”。不建议修改源码。

    2.重写toString()。建议使用。

    3.对拼接的数据采用字符串trim()也可去空格。



猜你喜欢

转载自blog.csdn.net/zach_king/article/details/80096595