Какой самый простой способ дополнить строку с 0 слева? - PullRequest
0 голосов
/ 22 мая 2018

Какой самый простой способ дополнить строку нулями влево, чтобы

  • "110" = "00000110"

  • "11110000" = "11110000"

Я пытался использовать макрос format!, но он только дополняет пробел вправо:

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

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

В качестве альтернативы ответу Шепмастера, если вы на самом деле начинаете с числа, а не со строки, и хотите отобразить его в двоичном виде, способ форматирования:

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);
0 голосов
/ 22 мая 2018

Документация модуля fmt описывает все параметры форматирования:

Fill / Alignment

Предоставляется символ заполненияобычно в сочетании с параметром width.Это означает, что если форматируемое значение меньше width, вокруг него будут напечатаны дополнительные символы.Дополнительные символы задаются fill, и выравнивание может быть одним из следующих параметров:

  • < - аргумент выравнивается по левому краю в width столбцах
  • ^ - аргумент выравнивается по центру в width столбцах
  • > - аргумент выравнивается по правому краю в width столбцах

assert_eq!("00000110", format!("{:0>8}", "110"));
//                                |||
//                                ||+-- width
//                                |+--- align
//                                +---- fill

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...