当前位置:  开发笔记 > 编程语言 > 正文

使用std :: fmt进行格式化时,如何用可变数量填充数字?

如何解决《使用std::fmt进行格式化时,如何用可变数量填充数字?》经验,为你挑选了1个好方法。

在我向用户显示之前,我正在寻找0-pad字符串,例如

let x = 1234;
println!("{:06}", x); // "001234"

但是,我希望输出字符串的长度是可变的,例如,它可以通过用户的命令行参数来设置:

let x = 1234;
let width = 6;
println!("{:0*}", width, x); //fails to compile
// error: invalid format string: expected `'}'`, found `'*'`

与精度不同,0-padding似乎不支持*指定宽度.

我不是在寻找涉及手动填充的解决方案,因为重新实现部分内容似乎很尴尬std::fmt.



1> Simon Whiteh..:

您可以将:0_格式说明符与变量一起使用:

println!("{:0width$}", x, width = width); // prints 001234

它在操场上跑步

同样,如果width <= 4,它只是打印1234.如果width = 60,它打印:

000000000000000000000000000000000000000000000000000000001234

格式参数也支持序数,因此这也有效:

println!("{:01$}", x, width);

std :: fmt的文档概述了print_!宏支持的各种参数和修饰符.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有