Example
Suppose we want to replace all occurrences of 'a' with '*' in a string. Here's the code to achieve this:
rustfn main() { let original = "banana"; let replaced = original.replace('a', "*"); println!("{}", replaced); // Output: b*n*n* }
In this example, the replace method takes two parameters: the character to replace and the replacement character. It returns a new string, leaving the original string original unmodified, which adheres to Rust's memory safety principles.
Advanced Usage
For more complex replacements, such as those based on specific conditions or patterns, the regex library can be used. This library provides powerful text processing capabilities, but you need to add a dependency in the Cargo.toml file:
toml[dependencies] regex = "1.5.4"
Then you can use regular expressions for replacement:
rustextern crate regex; use regex::Regex; fn main() { let text = "Hello 2020, Hello 2021"; let re = Regex::new(r"\d{4}").unwrap(); let result = re.replace_all(&text, "YEAR"); println!("{}", result); // Output: Hello YEAR, Hello YEAR }
In this example, all four-digit years are replaced with 'YEAR'. The replace_all method ensures that all matching instances are replaced.
Summary
For simple character replacements, using the replace method of str is the most direct and idiomatic approach. For more complex pattern matching and replacement, using the regex library is a better choice. Selecting the right tool can make your code clearer and more efficient.