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 在 文本处理
82,067 每月下载量
在 139 个Crate中 使用 (直接使用 72 个)
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