StringBuilder输出不包含构造函数中提供的字符

One*_*ree 4 java stringbuilder

        StringBuilder bd = new StringBuilder('[');
        Iterator<String> iter = names.iterator();
        while (iter.hasNext()) {
            bd.append(iter.next());
            if (iter.hasNext()) {
                bd.append(", ");
            }
        }
        bd.append(']');
        return bd.toString();
Run Code Online (Sandbox Code Playgroud)

我认为输出会看起来像[<some stuff, if any>],但它看起来像<some stuff, if any>].

到底是怎么回事?

sup*_*rEb 24

将构造函数args中的char更改为String.

StringBuilder bd = new StringBuilder("[");
Run Code Online (Sandbox Code Playgroud)

否则,char将转换为int 以定义初始容量.

  • 噢哦,哦!那是我的愚蠢!(但严重的是,这不是直观的). (6认同)