有人知道一个可以快速将String
的首字母大写的函数吗?
确定可以去let newfoo = first_letter_to_uppper_case("foobar".to_string())
或let newfoo = "foobar".to_string().first_letter_to_uppper_case()
答案 0 :(得分:0)
如果您想使用某个功能
let newfoo = first_letter_to_uppper_case("foobar".to_string())
,请尝试使用以下内容。
fn main() {
println!("{}", first_letter_to_uppper_case("foobar".to_string()));
}
fn first_letter_to_uppper_case (s1: String) -> String {
let mut c = s1.chars();
match c.next() {
None => String::new(),
Some(f) => f.to_uppercase().collect::<String>() + c.as_str(),
}
}
如果您希望将其用作隐含在字符串类型上的函数,例如let newfoo = "foobar".to_string().first_letter_to_uppper_case()
,请尝试:
pub trait FirstLetterToUppperCase {
fn first_letter_to_uppper_case(self) -> String;
}
impl FirstLetterToUppperCase for String {
fn first_letter_to_uppper_case(self) -> String {
let mut c = self.chars();
match c.next() {
None => String::new(),
Some(f) => f.to_uppercase().collect::<String>() + c.as_str(),
}
}
}
fn main() {
println!("{}", "foobar".to_string().first_letter_to_uppper_case());
}
但是,这些功能不能很好地处理非ASCII字符。有关更多信息,请参见this answer.