参考 str - Rust
一般认为 str
基于 utf-8 编码,每个字符可能由 1 到 4 个字节组成。
基本方法
.chars().count()
返回它包含的字符个数。
rust
assert_eq!("ƒoo".chars().count(), 3);
.is_empty()
判断它是否为空。
rust
let s = "";
assert!(s.is_empty());
let s = "not empty";
assert!(!s.is_empty());
.split_whitespace()
根据空格进行划分,返回一个迭代器。
rust
let mut iter = "A few words".split_whitespace();
assert_eq!(Some("A"), iter.next());
assert_eq!(Some("few"), iter.next());
assert_eq!(Some("words"), iter.next());
assert_eq!(None, iter.next());
.liens()
根据换行符进行划分,返回一个迭代器。
rust
let text = "foo\nbar\n\r\nbaz";
let mut lines = text.lines();
assert_eq!(Some("foo"), lines.next());
assert_eq!(Some("bar"), lines.next());
assert_eq!(Some(""), lines.next());
assert_eq!(Some("baz"), lines.next());
assert_eq!(None, lines.next());
.contains(&str)
判断是否包含某个字符串。
rust
let bananas = "bananas";
assert!(bananas.contains("nana"));
assert!(!bananas.contains("apples"));
.starts_with(&str)
判断是否以某个字符串开始。
rust
let bananas = "bananas";
assert!(bananas.starts_with("bana"));
assert!(!bananas.starts_with("nana"));
.starts_with(&str)
判断是否以某个字符串结束。
rust
let bananas = "bananas";
assert!(bananas.ends_with("anas"));
assert!(!bananas.ends_with("nana"));
strip_prefix(&str)
返回一个去除前缀的字符串,或返回 None
。
rust
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
assert_eq!("foo:bar".strip_prefix("bar"), None);
assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
strip_suffix(&str)
返回一个去除后缀的字符串,或返回 None
。
rust
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
assert_eq!("bar:foo".strip_suffix("bar"), None);
assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
对于字符串切片的方法
.replace(&str, &str)
返回完成替换后的字符串。
rust
let s = "this is old";
assert_eq!("this is new", s.replace("old", "new"));
assert_eq!("than an old", s.replace("is", "an"));
.repeat()
返回重复指定次数后的字符串。
rust
assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));