[Rust]文字列(string)の空白を削除するには?

Rust

どうも、ちょげ(@chogetarou)です。

文字列(string)の空白を削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

文字列(string)の空白を削除する方法は、2つあります。

retain()

ひとつは、retain()を使う方法です。

まず、文字列からretain()を呼び出します。

retain()の引数に1つの引数を持つクロージャーを指定します。

そして、クロージャーで引数が空白の場合に「true」を返すようにします。

//text=対象の文字列(String型)
text.retain(|c| !c.is_whitespace());

上記のretain()は、呼び出した文字列(string)の空白を削除します。

使用例

fn main() {
    let mut text: String = "  H e l l    o, W  o r ld     .".to_string();
    
    text.retain(|c| !c.is_whitespace());
    
    println!("{}", text);
}
出力:
Hello,World.

filter()

もうひとつは、filter()を使う方法です。

まず、文字列からchars()、chars()からfilter()を呼び出します。

filter()の引数に1つの引数を持つクロージャーを指定します。

クロージャーを引数が空白の場合に「true」を返すようにします。

そして、filter()からcollect()を呼び出します。

//text=対象の文字列
let text: String = text.chars().filter(|c| !c.is_whitespace()).collect();

上記のcollect()は、呼び出した文字列(string)の空白を削除した文字列(String型)を生成します。

使用例

fn main() {
    let text: &str = "  H e l l    o, W  o r ld     .";
    
    let result: String = text.chars().filter(|c| !c.is_whitespace()).collect();
    
    println!("{}", result);
}
出力:
Hello,World.

まとめ

文字列(string)の空白を削除する方法は、次の2つです。

  • retain()を使う方法(String型限定)
    text.retain(|c| !c.is_whitespace());
  • filter()を使う方法
    let text: String = text.chars().filter(|c| !c.is_whitespace()).collect();

コメント

タイトルとURLをコピーしました