📅  最后修改于: 2023-12-03 15:04:57.580000             🧑  作者: Mango
Rust是一种系统编程语言,最初由Mozilla开发。它在安全性、并发性和性能方面进行了优化,并以其所有权概念而闻名。在本文中,我们将学习如何在Rust中count出现的子字符串。
Rust自带了一个count函数,可以在string或str类型的字符串中count出现的子字符串。以下是一个例子:
fn main() {
let s = "hello world";
let count = s.matches("l").count();
println!("Count: {}", count);
}
上面的例子中,我们使用了matches函数来获取子字符串,并使用count函数来count子字符串出现的次数。当我们运行此代码时,将输出以下结果:
Count: 3
我们还可以使用手动循环来count出现的子字符串。以下是一个例子:
fn main() {
let s = "hello world";
let mut count = 0;
let mut idx = 0;
while let Some(i) = s[idx..].find('l') {
idx += i + 1;
count += 1;
}
println!("Count: {}", count);
}
在上面的例子中,我们在字符串中移动索引,并使用String的find方法来找到每个匹配项。当我们运行此代码时,将输出以下结果:
Count: 3
如果我们需要count更复杂的子字符串,我们可以使用正则表达式。以下是一个例子:
use regex::Regex;
fn main() {
let s = "hello world";
let re = Regex::new(r"l+").unwrap();
let count = re.find_iter(s).count();
println!("Count: {}", count);
}
上面的例子中,我们使用了regex库来构造一个正则表达式,并使用find_iter函数来count出现的子字符串。当我们运行此代码时,将输出以下结果:
Count: 3
Rust提供了几种count子字符串的方法。我们可以使用Rust自带的count函数,手动循环计数,或使用正则表达式。无论我们使用哪种方法,都可以轻松地在Rust中count出现的子字符串。