所以我有字符串"Hello World!" 并想要取代"!" 用"?" 所以新的字符串是"Hello World?"
在Ruby中,我们可以使用以下gsub
方法轻松完成此操作:
"Hello World!".gsub("!", "?")
如何在Rust中以惯用方式执行此操作?
您可以用以下内容替换另一个字符串中出现的所有字符串std::str::replace
:
let result = str::replace("Hello World!", "!", "?"); // Equivalently result = "Hello World!".replace("!", "?"); println!("{}", result); // => "Hello World?"
对于更复杂的情况下,可以使用regex::Regex::replace_all
从正则表达式:
use regex::Regex; let re = Regex::new(r"[A-Za-z]").unwrap(); let result = re.replace_all("Hello World!", "x"); println!("{}", result); // => "xxxxx xxxxx!"
您还可以使用迭代器和match
表达式:
let s:String = "Hello, world!".chars() .map(|x| match x { '!' => '?', 'A'..='Z' => 'X', 'a'..='z' => 'x', _ => x }).collect(); println!("{}", s);// Xxxxx, xxxxx?