Число в строку с ведущими (дополненными слева) нулями в джулиланге

Казалось бы, простой вопрос, но нигде не могу найти ответ. Если у меня есть целочисленная переменная, как я могу преобразовать ее в строку с ведущими нулями?

Я хочу что-то вроде кода ниже:

n = 4
string_size = 3
println(fleading(n, string_size)) 
# result should be "004"

Где fleading будет чем-то вроде функции для преобразования числа в строку с ведущими нулями. Аналогичным способом в python является str(4).zfill(3), что дает в результате 004.


person silgon    schedule 24.08.2016    source источник


Ответы (3)


Вы ищете функцию lpad() (для левой панели):

julia> lpad(4,3,"0")
"004"

Обратите внимание, что последний аргумент должен быть строкой.

Из документации:

lpad(string, n, "p")

Сделайте строку шириной не менее n столбцов при печати, дополнив слева копиями p.

person Michael Ohlrogge    schedule 24.08.2016
comment
Спасибо! поиск ведущих нулей не дал мне никакого результата. - person silgon; 24.08.2016
comment
@silgon Да, сложно знать всю терминологию, которую люди используют для обозначения такого рода вещей. - person Michael Ohlrogge; 24.08.2016
comment
Теперь это должно быть lpad(4,3,"0"), так как последний должен быть строкой, - person Wikunia; 05.09.2019

Для Юлии 1.0 синтаксис такой:

lpad(s, n::Integer, p::Union{AbstractChar,AbstractString}=' ')

Таким образом, пример:

julia> lpad(4, 3, '0')
004
person Martin    schedule 08.02.2019

Существует также @printf("%03i",4) использование Printf.@printf

person tlamadon    schedule 27.04.2021