将字符串转换为小写

3
如何将字符串转换为小写或执行某种忽略大小写的等效比较?在Ascii类型中有一个忽略大小写的选项,但似乎很复杂,并且我不知道如何将str转换为Ascii
2个回答

7

std::ascii::AsciiExt.eq_ignore_ascii_case可以帮您实现您想要的功能:

use std::ascii::AsciiExt;

fn main() {
    assert!("foo".eq_ignore_ascii_case("FOO"));
}

现在文档中的搜索功能相当不错;像“case”和“ascii”这样的搜索词会返回包含此解决方案的良好结果集。


我确实搜索过,但没有注意到它在str上已经实现了。另外,如果我没记错的话,~"foo".as_slice().eq_ignore_ascii_case(owned_str.as_slice())应该也适用于拥有的字符串,对吗? - Daniel Fath
1
拥有的字符串可以自动切片,因此(~"foo").eq_ignore_ascii_case(~"FOO")可以正常工作,无需调用as_slice()方法。(试一下就知道了!) - Chris Morgan
在1.0版本中,重命名为:std::ascii::AsciiExt.eq_ignore_ascii_case - Akshit Khurana

4

从那个相同的特性开始,std::ascii::StrAsciiExt.to_ascii_upperstd::ascii::StrAsciiExt.to_ascii_lower 也非常方便。


看起来从1.0.0版本开始,现在有了to_ascii_lowercaseto_ascii_uppercase - ug_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接