将字符串的首字母转换为大写的快速函数?

Quick function to convert a String's first letter to uppercase?

有谁知道将 String 的第一个字母改为大写的函数? 理想情况下,它会这样使用:

let newfoo = first_letter_to_uppper_case("foobar".to_string()),或
let newfoo = "foobar".to_string().first_letter_to_uppper_case().

如果您想要这样使用函数:
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 字符。有关详细信息,请参阅