Rust 学习只 字符串操作知识点

1 怎么输出unicode

js 复制代码
// 使用 \u{} 输入等值的Unicode字符(最高24位)
let byte_escape = "I'm saying hello \u{0065}"; 
println!("{}", byte_escape);

2 怎么输出ASCII字符

js 复制代码
// 使用 \x 输入等值的ASCII字符(最高7位) 
let byte_escape = "I'm saying hello \x7f";
println!("{}", byte_escape);

3 禁止转义的字符串字面量

js 复制代码
fn main() {
    // 字符串字面量前面加r,表示不转义
    let raw_str = r"Escapes don't work here: \x3F \u{211D}";
    println!("{}", raw_str);
    
    // 这个字面量必须使用r##这种形式,因为我们希望在字符串字面量里面保留""
    let quotes = r#"And then I said: "There is no escape!""#;
    println!("{}", quotes);
    
    // 如果遇到字面量里面有#号的情况,可以在r后面,加任意多的前后配对的#号,
    // 只要能帮助Rust编译器识别就行
    // 这个地方加任意多的前后配对的#号的目的是为了保证 前后的#配对的时候 不会跟正文中的#配对配到
    //一起,加入正文中有##两个#号那么前后配对就得最少3个不然就会跟正文中的配对成功 导致报错
    let longer_delimiter = r###"A string with "# in it. And even "##!"###;
    println!("{}", longer_delimiter);
}

4 字节串 以b开头 输出的是每个字符对应的ASCII

这里记录一个知识点 每一个字符在ASCII 中都对应一个码点。小写字母 a 的 ASCII 值为 97也就是a的码点事 97.b就是98 这个是十进制的值,转成二进制 16进制都以这个十进制的数来转。

js 复制代码
fn main() {
    // 字节串的类型是字节的数组,而不是字符串了
    // 这个地方输出的内容就是每个字符的ASCII的码点
    let bytestring: &[u8; 21] = b"this is a byte string";
    println!("A byte string: {:?}", bytestring);
    
    // 可以看看下面这串打印出什么
    //\x52 这是16进制的码点 会转成10进制的码点输出
    let escaped = b"\x52\x75\x73\x74 as bytes";
    println!("Some escaped bytes: {:?}", escaped);

    // 字节串与原始字面量结合使用
    //\u{211D} 这个会被分解成 一个一个的字符 然后转成10进制的码点输出
    let raw_bytestring = br"\u{211D} is not escaped here";
    println!("{:?}", raw_bytestring);
}
相关推荐
喵了几个咪28 分钟前
Go 写业务,Rust 扛底盘:一套可落地的混合架构
微服务·架构·golang·rust·多租户·gowind·rushwind
对象存储与RustFS15 小时前
升级 RustFS 二进制不停机:一条一条换,留一条退路
后端·rust·开源
感谢地心引力18 小时前
来试试我做的音乐播放器吧
ai·rust·音乐·navidrome·music·tarui
蚂蚁背大象18 小时前
RocketMQ-Rust 1.0.0 发布:用 Rust 做消息队列,这次有哪些变化?
rust·开源·rocketmq
喵个咪20 小时前
RushWind Admin — 用 Rust 写的企业级中后台,开源了
后端·rust·开源
喵个咪20 小时前
RushWind Admin — 契约驱动:203 条路由零手写的工程化拆解
后端·rust·开源
喵个咪20 小时前
Go 写业务,Rust 扛底盘:一套可落地的混合架构
后端·rust·go
孙启超1 天前
【AI开发之Rust】第 22 课:一键多平台与工程收尾 —— CI、发布检查与结课
开发语言·后端·rust
对象存储与RustFS2 天前
自建对象存储的第一个决定:单机就够,还是必须上分布式
后端·rust·开源
geovindu2 天前
rust: tree
开发语言·后端·rust