我想打印出一个字符串
IO.puts("Count: #{my_count}")
Run Code Online (Sandbox Code Playgroud)
但是我希望输出中的前导零如
Count: 006
Run Code Online (Sandbox Code Playgroud)
我该怎么做,文档在哪里?
Dmi*_*kyy 42
您可以使用 String.pad_leading/3
my_count
|> Integer.to_string
|> String.pad_leading(3, "0")
Run Code Online (Sandbox Code Playgroud)
Sim*_*tti 17
我不确定Elixir中是否存在带填充格式化程序方法的整数到字符串.但是,您可以依赖Elix io模块,该模块可以使用:io原子在Elixir中访问.
iex(1)> :io.format "~3..0B", [6]
006:ok
Run Code Online (Sandbox Code Playgroud)
你可以在这个答案中找到解释.为方便起见,我在这里引用它:
"~3..0B"翻译为:Run Code Online (Sandbox Code Playgroud)~F. = ~3. (Field width of 3) P. = . (no Precision specified) Pad = 0 (Pad with zeroes) Mod = (no control sequence Modifier specified) C = B (Control sequence B = integer in default base 10)
您可以直接使用它,也可以将其包装在自定义函数中.
iex(5)> :io.format "Count: ~3..0B", [6]
Count: 006:ok
Run Code Online (Sandbox Code Playgroud)
Tsu*_*omu 12
您还可以使用String.pad_leading/3:
my_count
|> Integer.to_string
|> String.pad_leading(3, "0")
Run Code Online (Sandbox Code Playgroud)
请注意,v1.3.0的发行说明说:
令人困惑的String.ljust/3和String.rjust/3 API已被软弃用,转而支持String.pad_leading/3和String.pad_trailing/3
这是一种软弃用.它的使用不会发出警告.
| 归档时间: |
|
| 查看次数: |
13863 次 |
| 最近记录: |