Rust程式語言的String物件有提供trim方法,可以用來去除字串頭尾的空白字元,不過這個方法會回傳字串切片(& str),而不會去更動到原來的String物件。不過在少數情況下,我們還是希望原來的String物件可以真正被trim



Trim in-place

「Trim in-place」是筆者開發的套件,提供了一個TrimInPlace特性,可以用來擴充String結構體的trim*方法,多出可以改變自身的trim*_in_place方法。

Crates.io

https://crates.io/crates/trim-in-place

Cargo.toml

trim-in-place = "*"

使用方法

使用use關鍵字來將trim_in_place這個crate底下的TrimInPlace特性給引用到當前的程式範圍下,接著String結構體就有trim*_in_place方法可以使用了。

例如:

extern crate trim_in_place;

use trim_in_place::TrimInPlace;

let mut s = String::from(" 1234 abcd  ");

s.trim_in_place();

assert_eq!("1234 abcd", s);
extern crate trim_in_place;

use trim_in_place::TrimInPlace;

let mut s = String::from(" 1234 abcd  ");

s.trim_start_in_place();

assert_eq!("1234 abcd  ", s);