Центр строки ржавчины в ряде символов
Я читал о format!
и всех вариантах форматирования и увидел, что есть прекрасный способ центрировать строку текста, используя либо <
, ^
или >
. Вместо того чтобы центрировать строку в пробелах, можно ли центрировать ее в символе?
{:^32} // Centers it nicely in 32 characters of whitespace
Я думал примерно так:
{:^32'c'} // But this does not work
Я перепробовал почти все мыслимые способы, кроме тех, которые кажутся слишком безумными. Но, к счастью, есть переполнение стека !
Возможно ли центрировать строку с помощью чисел для достижения чего-то вроде следующего?
--------так что это потрясающе--------
1 ответ:
Можно ли центрировать строку с помощью чисел для достижения чего-то вроде следующего?
Да, вроде того, если вы действительно имеете в виду "что-то вроде"...
fn main() { let s = format!("{:-^30}", "SO is AWESOME"); assert_eq!(s, "--------SO is AWESOME---------"); // ^-- 8 here ^-- 9 here }
Ссылаясь на синтаксис форматирования , Вот соответствующие части:
format_spec := [[fill]align][sign]['#']['0'][width]['.' precision][type] fill := character align := '<' | '^' | '>' width := count
Задаем заливку (
-
), выравнивание (^
/ центр), а ширина (30
). Однако строка имеет ширину 13 единиц, поэтому, чтобы заполнить ее до 30 единиц, заполнение должно быть больше с одной стороны.