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

Pea*_*ade 3 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);
}
Run Code Online (Sandbox Code Playgroud)

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

null传递时的示例返回值:

"housenumber":"  "
Run Code Online (Sandbox Code Playgroud)

怎么来的?

Mar*_*nik 5

格式说明符

%2s
Run Code Online (Sandbox Code Playgroud)

表示此字段将至少两个字符宽,并根据需要使用空格填充。

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

%s
Run Code Online (Sandbox Code Playgroud)

这将自动为您提供第二个参数,因为它是您使用的第二个说明符。同为%1s你有第一个参数。