當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust str.splitn用法及代碼示例


本文簡要介紹rust語言中 str.splitn 的用法。

用法

pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P> where    P: Pattern<'a>,

給定字符串切片的子字符串的迭代器,由模式分隔,限製為最多返回 n 個項目。

如果返回 n 子字符串,則最後一個子字符串(第 n 個子字符串)將包含字符串的其餘部分。

pattern 可以是 &str char char 的切片,或者確定字符是否匹配的函數或閉包。

迭代器行為

返回的迭代器不會是雙端的,因為它的支持效率不高。

如果模式允許反向搜索,則可以使用 rsplitn 方法。

例子

簡單模式:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
assert_eq!(v, ["Mary", "had", "a little lambda"]);

let v: Vec<&str> = "lionXXtigerXleopard".splitn(3, "X").collect();
assert_eq!(v, ["lion", "", "tigerXleopard"]);

let v: Vec<&str> = "abcXdef".splitn(1, 'X').collect();
assert_eq!(v, ["abcXdef"]);

let v: Vec<&str> = "".splitn(1, 'X').collect();
assert_eq!(v, [""]);

更複雜的模式,使用閉包:

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
assert_eq!(v, ["abc", "defXghi"]);

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 str.splitn。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。