+ 1

Переменная в качестве спецификатора формата

Есть такая задача - вывести в консоль число определённой разрядности. Если разрядность меньше заданной - дополнить нулями впереди. Разрядность задаётся переменной, и просто подставить её в качестве спецификатора формата не получается. Если бы разрядность задавалась числом например 5, можно было бы написать System.out.printf("%05d", некоторое число); в моём случае разрядность задаётся переменной n, и просто подставить её вместо пятёрки нельзя. Как быть?)

26th Feb 2018, 8:59 AM
Oleg
Oleg - avatar
9 Antworten
+ 10
Можно попробовать спросить в этой теме тоже, там могут быть специалисты по Java: https://www.sololearn.com/discuss/516185/?ref=app
26th Feb 2018, 2:19 PM
NezhnyjVampir
+ 2
System.out.printf("%0"+n.toString()+"d",некоторое число); не годится?
27th Feb 2018, 9:06 AM
Tema
Tema - avatar
+ 2
не n.toString, а n.toString() 😀 ещё можно так: Integer.toString(n) System.out.printf("%0"+Integer.toString(n)+"d",некоторое число);
27th Feb 2018, 9:50 AM
Tema
Tema - avatar
+ 2
Странно... 🤔
27th Feb 2018, 10:00 AM
Tema
Tema - avatar
+ 2
Этот метод вывода немного сложней в использовании, чем out.print, но реализует форматированный вывод в консоль. По ссылке статья, в которой довольно подробно об этом методе написано. http://study-java.ru/uroki-java/formatirovanie-chisel-i-texta-v-java/
4th Mar 2018, 5:27 PM
Oleg
Oleg - avatar
+ 1
n.toString не сработало, после этого я удалил .toString и всё заработало как надо) то есть получилась строка System.out.printf("%0"+n+"d", некоторое число). Но вчера я такой вариант пробовал и получал при этом ошибку)) Не понимаю, что было не так, но вопрос в любом случае решён)) Спасибо)
27th Feb 2018, 9:24 AM
Oleg
Oleg - avatar
+ 1
Ну да, так и делал, просто сюда без скобок написал) Появлялась ошибка int cannot be dereferenced
27th Feb 2018, 9:54 AM
Oleg
Oleg - avatar
0
Расскажите мне о System.out.printf. Встречал только System.out.println и System.out.print
4th Mar 2018, 5:15 PM
Adilet
Adilet - avatar
0
Спасибо Олег
5th Mar 2018, 3:40 PM
Adilet
Adilet - avatar