用左边的0填充字符串的最简单方法是什么?

时间:2018-05-22 00:21:31

标签: rust formatting string-formatting number-formatting

最简单的方法是将字符串填充为左侧的0,以便

  • " 110" =" 00000110"

  • " 11110000" =" 11110000"

我尝试使用format!宏,但它只用空格填充到右边:

format!("{:08}", string);

2 个答案:

答案 0 :(得分:18)

fmt module documentation描述了所有格式选项:

  

Fill / Alignment

     

填充字符通常与。一起提供   width参数。这表示如果格式化的值是   如果小于width,则会在其周围打印一些额外的字符。   额外字符由fill指定,对齐可以是   以下选项之一:

     
      
  • < - 参数在width
  • 中左对齐   
  • ^ - 参数在width
  • 中居中对齐   
  • > - 参数在width
  • 中右对齐   
assert_eq!("00000110", format!("{:0>8}", "110"));
//                                ^^^ -- width
//                                || --- align
//                                | ---- fill

另见:

答案 1 :(得分:5)

作为Shepmaster答案的替代方案,如果你实际上是以数字而不是字符串开头,并且想要将其显示为二进制,那么格式化的方式是:

let n: u32 = 0b11110000;
// 0 indicates pad with zeros
// 8 is the target width
// b indicates to format as binary
let formatted = format!("{:08b}", n);