String.format() добавление 2 пробелов, когда аргументы являются пустыми строками

У меня есть этот простой метод, который идет:

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

Когда мой аргумент значения nullПосле двоеточия добавляется 2 пробела вместо пустой строки.

Пример возвращаемого значения, когда null передается:

"housenumber":"  "

Как так?

1 ответ

Решение

Спецификатор формата

%2s

означает, что это поле будет иметь ширину не менее двух символов и дополнено пробелами.

Если вы имели в виду "вторая строка", просто напишите

%s

Это автоматически даст вам второй аргумент, потому что это второй спецификатор, который вы используете. То же самое для %1s у вас за первый аргумент.

Другие вопросы по тегам