2015-05-22 3 views
2

Я хотел бы добавить «0» строку, когда ИНТ ниже 5. Я попытался этоAndroid Java Append п символов в строке

if(allItems_filtered.results(i).min_sale_unit_price.length() < 5){ 
    calc = 5 - allItems_filtered.results(i).min_sale_unit_price.length(); 
    min_sale_unit_price = String.format("%0" + calc + "d", allItems_filtered.results(i).min_sale_unit_price); 
} 

INT calc это количество «0» он должен добавить в передней части min_sale_unit_price строки

который возвращает эту ошибку:

%d can't format java.lang.String arguments 

что вполне понятно, но я не знаю, как к такому же, но затем к StrI нг.

ответ

1

Это говорит вам, что вы пытаетесь форматировать строку, но %d ссылается на int, вам нужно преобразовать String в int, и он будет работать. Кроме того, вам не нужно, чтобы подсчитать, сколько нулей вам нужно, если вы используете %05d он будет автоматически заполнять число до его длина составляет не 5

min_sale_unit_price = String.format("%05d", Integer.valueOf(allItems_filtered.results(i).min_sale_unit_price)); 

Возьмем для примера

Log.d("123?", String.format("%05d", 123)); 

Будет распечатать

0

Если взять число, которое больше по размеру, чем пять, он не будет добавлять что-нибудь

Log.d("123?", String.format("%05d", 123456)); 

Будет ли результат

123456 
+0

Хорошо, я попытался это и не возвращает ошибок, но это также не добавляет к «0»? Я проверил и 'int calc' на самом деле правильное значение. –

+0

Используйте% 05d напрямую, ваша логика для вычисления неверна. Вам не нужно вычислять даже –

+0

А, да, действительно, я думал, что это сработало немного по-другому, но теперь оно делает именно то, что я хочу. Спасибо за ваше время и помощь! –

 Смежные вопросы

  • Нет связанных вопросов^_^