字符串方法
操作文本
字符串方法 是 CoddyKit 上的免费 Learn Rust Coding 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn Rust Coding 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn Rust Coding 课程共包含 4 节课。
处理文本
Rust 的 str 类型提供了许多用于检查和转换文本的内置方法。这些方法同时适用于 String 和 &str。
fn main() {
let s = "Hello, Rust";
println!("length {}", s.len());
}更改大小写
使用 to_uppercase 和 to_lowercase 更改字母的大小写。它们会返回一个新的 String。
fn main() {
let s = "Rust";
println!("{}", s.to_uppercase());
println!("{}", s.to_lowercase());
}去除空白
trim 会移除开头和结尾的空白,并返回指向原文本的切片。
fn main() {
let padded = " spaced ";
let clean = padded.trim();
println!("[{}]", clean);
}检查内容
使用 contains、starts_with 和 ends_with 检查文本。每个方法都会返回一个 bool。
fn main() {
let s = "rust_lang.txt";
println!("{}", s.contains("lang"));
println!("{}", s.ends_with(".txt"));
}替换文本
replace 会将某个子字符串的每次出现替换为另一个子字符串,并生成新的 String。
fn main() {
let s = "I like cats. Cats are nice";
let dogs = s.replace("ats", "ats and dogs");
println!("{}", dogs.replace("cats", "pets"));
}拆分文本
split 按分隔符拆分文本,并生成一个迭代器。split_whitespace 会按任意空白进行拆分。
fn main() {
let csv = "a,b,c";
for part in csv.split(',') {
println!("{}", part);
}
}拆分为 Vec
需要存储拆分结果时,请将各个片段收集到一个向量中。
fn main() {
let line = "one two three";
let words: Vec<&str> = line.split_whitespace().collect();
println!("{:?} ({} words)", words, words.len());
}查找子字符串
find 会将第一个匹配项的字节索引作为 Option 返回;如果不存在匹配项,则返回 None。
fn main() {
let s = "abcdef";
match s.find('d') {
Some(i) => println!("found at {}", i),
None => println!("not found"),
}
}迭代字符
chars 方法会生成每个字符。使用它可以逐个 char 处理文本。
fn main() {
let s = "abc";
for c in s.chars() {
println!("{}", c);
}
}统计字符数
要统计字符数(而不是字节数),请使用 chars().count()。对于非 ASCII 文本,这一点非常重要。
fn main() {
let s = "hello";
println!("{} chars", s.chars().count());
}串联方法
字符串方法会返回新值,因此您可以将它们串联起来,构成清晰的转换流程。
fn main() {
let input = " Hello World ";
let result = input.trim().to_lowercase().replace(' ', "_");
println!("{}", result);
}快速检查
回顾哪个方法会移除周围的空白。
总结
常用的字符串方法:
- 大小写:
to_uppercase、to_lowercase。 - 清理:
trim、replace。 - 检查:
contains、starts_with、find。 - 拆分:
split、split_whitespace、chars。
大多数方法都会返回新值,因此可以方便地串联使用。
fn main() {
let raw = " Rust,Go,Lua ";
let langs: Vec<&str> = raw.trim().split(',').collect();
println!("{:?}", langs);
}常见问题解答
「字符串方法」课时是免费的吗?
是的 — 「字符串方法」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn Rust Coding 课程的其余内容,请升级到 CoddyKit PRO。 Learn Rust Coding 课程共包含 4 节课。
「字符串方法」这节课中我会学到什么?
操作文本 你通过在浏览器中直接运行的动手代码来练习 Learn Rust Coding,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn Rust Coding 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn Rust Coding 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「字符串方法」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn Rust Coding 课中编写并运行代码吗?
能。每节 Learn Rust Coding 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。