7个版本

使用旧的Rust 2015

0.1.6 2019年11月12日
0.1.5 2018年3月10日
0.1.4 2015年4月22日
0.1.3 2015年3月22日
0.1.1 2015年1月29日

#64文本处理

Download history 18651/week @ 2024-03-14 17361/week @ 2024-03-21 17257/week @ 2024-03-28 18154/week @ 2024-04-04 16543/week @ 2024-04-11 17266/week @ 2024-04-18 18070/week @ 2024-04-25 17440/week @ 2024-05-02 18874/week @ 2024-05-09 19582/week @ 2024-05-16 18173/week @ 2024-05-23 19434/week @ 2024-05-30 19867/week @ 2024-06-06 21620/week @ 2024-06-13 20479/week @ 2024-06-20 16433/week @ 2024-06-27

82,067 每月下载量
139 个Crate中 使用 (直接使用 72 个)

MIT 协议

14KB
87

rust-pad 构建状态

这是一个运行时填充字符串的库。

它提供了四个常用情况的辅助函数,以及一个主要函数来覆盖其他情况。

查看Rustdoc

安装

此Crate与Cargo一起工作。将以下内容添加到您的Cargo.toml依赖关系部分

[dependencies]
pad = "0.1"

stdlib中的填充

您不需要这个Crate进行简单的填充! 可以使用Rust标准库进行字符串填充。

例如,使用零填充数字

// Padding using std::fmt
assert_eq!("0000012345", format!("{:0>10}", 12345));

您甚至可以使用变量作为填充宽度

// Padding using std::fmt
assert_eq!("hello       ", format!("{:width$}", "hello", width=12));

Rust的std::fmt文档包含了更多示例。其余示例将使用pad Crate。

使用方法

您可以使用pad_to_width方法将字符串填充到最小宽度

use pad::PadStr;
println!("{}", "Hi there!".pad_to_width(16));

这将输出“Hi there!”后跟七个空格,这是将宽度增加到16个字符所需的空格数。

字符串长度由unicode_width Crate确定,不假设CJK。

对齐

默认情况下,字符串是左对齐的:任何额外的字符都添加到右侧。要更改此设置,请传入一个Alignment

use pad::{PadStr, Alignment};
let s = "I'm over here".pad_to_width_with_alignment(20, Alignment::Right);

总共有四个这样的值

  • ,将文本放在左侧,空格放在右侧;
  • ,将文本放在右侧,空格放在左侧;
  • 居中,均匀地将文本居中,如果无法完全居中,则将其稍微向左放置;
  • MiddleRight,如上所述,但位于右侧。

字符

默认设置的另一项是用于填充字符串的字符——默认情况下是空格,但您可以更改它

use pad::PadStr;
let s = "Example".pad_to_width_with_char(10, '_');

截断

最后,您可以覆盖当值超出您指定的宽度时发生的情况。默认情况下,宽度参数表示一个最小宽度:任何短于该宽度的字符串都将被填充,但任何长于该宽度的字符串仍然会完整返回。

相反,您可以告诉它使用最大值进行填充,这样当传入的字符串长度超过宽度时,就会截断输入。

use pad::PadStr;
let short = "short".with_exact_width(10);  // "short     "
let long = "this string is long".with_exact_width(10);  // "this strin"

完整示例

所有上述函数都委托给pad函数,您可以在特殊情况下使用该函数。在这里,为了用向右填充一个数字,传入所有参数

use pad::{PadStr, Alignment};
let s = "12345".pad(10, '0', Alignment::Right, true);

(结尾的true也可以是false。这取决于是否截断。)

关于调试的说明

最后一点:宽度函数接收一个usize,而不是一个有符号数字类型。这意味着如果您尝试传入一个负值,它将回绕到正值,并生成一个非常大的字符串,可能还会导致您的程序崩溃。因此,如果您的填充调用以某种原因失败,这可能是原因。

依赖项

~370KB