String.format()在参数为空字符串时添加2个空格

时间:2015-01-02 11:41:37

标签: java string format whitespace

我有这个简单的方法:

private String toJsonFormat(String name, Object value, boolean first) {
    value = value == null ? "" : value; 
    return String.format((first ? "" : ",") + "\"%1s\":\"%2s\"", name, value);
}

当我的 value 参数为null时,冒号后面会添加2个空格,而不是空字符串。

传递null时的示例返回值:

"housenumber":"  "

怎么回事?

1 个答案:

答案 0 :(得分:5)

格式说明符

%2s

表示此字段至少两个字符宽,必要时填充空格。

如果你的意思是“第二个字符串”,那么就写一下

%s

这将自动为您提供第二个参数,因为它是您使用的第二个说明符。对于第一个参数,%1s也是如此。