+ 1
Переменная в качестве спецификатора формата
Есть такая задача - вывести в консоль число определённой разрядности. Если разрядность меньше заданной - дополнить нулями впереди. Разрядность задаётся переменной, и просто подставить её в качестве спецификатора формата не получается. Если бы разрядность задавалась числом например 5, можно было бы написать System.out.printf("%05d", некоторое число); в моём случае разрядность задаётся переменной n, и просто подставить её вместо пятёрки нельзя. Как быть?)
9 Answers
+ 10
Можно попробовать спросить в этой теме тоже, там могут быть специалисты по Java:
https://www.sololearn.com/discuss/516185/?ref=app
+ 2
System.out.printf("%0"+n.toString()+"d",некоторое число);
не годится?
+ 2
не n.toString, а n.toString()
😀
ещё можно так:
Integer.toString(n)
System.out.printf("%0"+Integer.toString(n)+"d",некоторое число);
+ 2
Странно... 🤔
+ 2
Этот метод вывода немного сложней в использовании, чем out.print, но реализует форматированный вывод в консоль. По ссылке статья, в которой довольно подробно об этом методе написано.
http://study-java.ru/uroki-java/formatirovanie-chisel-i-texta-v-java/
+ 1
n.toString не сработало, после этого я удалил .toString и всё заработало как надо)
то есть получилась строка
System.out.printf("%0"+n+"d", некоторое число).
Но вчера я такой вариант пробовал и получал при этом ошибку)) Не понимаю, что было не так, но вопрос в любом случае решён))
Спасибо)
+ 1
Ну да, так и делал, просто сюда без скобок написал) Появлялась ошибка int cannot be dereferenced
0
Расскажите мне о System.out.printf. Встречал только System.out.println и System.out.print
0
Спасибо Олег