String 转换字符串的快速函数';是大写的第一个字母吗?

String 转换字符串的快速函数';是大写的第一个字母吗?,string,rust,uppercase,String,Rust,Uppercase,有人知道一个函数可以将字符串的第一个字母更改为大写等效字母吗? 理想情况下,它的用途如下: 让newfoo=第一个字母到大写字母(“foobar.”到字符串()),或 让newfoo=“foobar.”to_string()。第一个字母\u to_uppper\u case()如果您想要这样使用函数: 让newfoo=第一个字母到大写字母(“foobar.”到字符串()) 请尝试使用以下方法: fn main(){ println!(“{}”,第一个字母“to”大写(“foobar.to”字符串

有人知道一个函数可以将
字符串的第一个字母更改为大写等效字母吗?
理想情况下,它的用途如下:

让newfoo=第一个字母到大写字母(“foobar.”到字符串())
,或

让newfoo=“foobar.”to_string()。第一个字母\u to_uppper\u case()

如果您想要这样使用函数:
让newfoo=第一个字母到大写字母(“foobar.”到字符串())

请尝试使用以下方法:

fn main(){
println!(“{}”,第一个字母“to”大写(“foobar.to”字符串());
}
fn第一个字母到大写字母(s1:String)->String{
设mut c=s1.chars();
匹配c.next(){
None=>String::new(),
Some(f)=>f.to_大写().collect::()+c.as_str(),
}
}
如果希望它作为一个函数在字符串类型上实现,如
let newfoo=“foobar.”to_string()。第一个字母\u to_uppper\u case()
,请尝试:

pub trait firstlettertouppercase{
fn第一个字母到大写字母(self)->字符串;
}
字符串的impl firstlettertouppercase{
fn第一个字母到大写字母(self)->字符串{
设mut c=self.chars();
匹配c.next(){
None=>String::new(),
Some(f)=>f.to_大写().collect::()+c.as_str(),
}
}
}
fn main(){
println!(“{}”,“foobar.”to_string();
}

但是,这些函数不能很好地处理非ascii字符。有关更多信息,请参见

抱歉,但此答案大错特错。假设“字母”仅为一个字节,请记住Rust中的字符串是UTF-8字符串,转换第一个字符并不像您认为的那么简单。请参见我的最新编辑,它也意味着“快速”。)嗯,在你的实现中,你创建了两个字符串,这不是我所说的快速也快速并不意味着错误,对于finish,我认为你添加的答案是这个问题的答案。所谓快速,我指的是快速写作的速度。quick既不是对的也不是错的。我的用法是将Lorem Ipsum句子中的第一个单词大写。它旨在替换Javascript的
语句=句子.charAt(0.toUpperCase()+句子.slice(1)。这对它的工作来说已经足够好了。现在它是正确的。不,我要的是如何,而不是为什么。这些都是相当不同的问题,而使用板条箱的答案需要构建它的模型。添加许多依赖项并不是快速复制粘贴代码片段。Shep自己引用的答案回答了如何和为什么。啊,是的。我现在看到了。TBH,我认为这不是工作代码,因为他声明这不是他使用/编写的代码,而是它看起来的样子,他宁愿使用CRATESIO。是时候编辑了。我已经回答了另一个可能适合您的用例的问题。