首页 > 其他分享 >Rust索引String

Rust索引String

时间:2024-09-28 13:45:36浏览次数:8  
标签:UTF String 索引 Rust https rust

Rust的String里其实是UTF-8编码的,而UTF-8是变长编码,因此会导致Rust索引String时,可能是索引第k个UTF-8字符(需要遍历字符串),也可能是索引第k个字节。因此,Rust不支持直接用下标来索引String。

如果要找到第k个UTF-8字符:

s.chars().nth(k)

如果要找到第k个字节:

let x: u8 = s.as_bytes()[k];

如果要修改第k个字节,则需要unsafe,因此这一步可能会导致出现无效的UTF-8字符:

unsafe { s.as_bytes_mut()[len - 1] = b'-'; }

参考:

https://stackoverflow.com/questions/24542115/how-to-index-a-string-in-rust

https://users.rust-lang.org/t/solved-rust-u8-literal-notation/25306

https://doc.rust-lang.org/std/primitive.str.html#method.as_bytes_mut

标签:UTF,String,索引,Rust,https,rust
From: https://www.cnblogs.com/searchstar/p/18437573

相关文章

  • VSCode - Hint documentation of a Python function is different from its docstring
      Searched'defseed('inthesourcecode:  Thereisonedefinitionoftheseed()methodininterfaceclassRandomState:Theimplementationoftheseed()methodinclassRandomStateisasfollows:......VSCodehintdisplaysthedocstr......
  • C# 字符串(String)的应用说明一
    一.字符串(String)的应用说明:在C#中,更常见的做法是使用 string 关键字来声明一个字符串变量,也可以使用字符数组来表示字符串。string关键字是 System.String 类的别名。 二.创建String对象的方法说明:1.通过给String 关键字定义一个字符串;2.通过使用String类构......
  • STL之string
    STL之string1.为什么学习string类?1.1C语言中的字符串1.2两个面试题(暂不做讲解)2.标准库中的string类2.1string类(了解)2.2auto和范围for(重点)2.3string类的常用接口说明(注意下面我只讲解最常用的接口)1.为什么学习string类?1.1C语言中的字符串C语言中,字符......
  • 【C++】string中常用的接口
    目录前言常用接口1.有/无参string2.字符串相加3.string类对象的访问及遍历操作3.1普通遍历3.2迭代器遍历3.3范围for4.string类对象的修改操作前言今天分享一些个人认为string常用的接口,大多数资料来自于cplusplus,其他不常用的平常查阅资料使用即可。需要测试代......
  • GaussDB云数据库SQL应用系列—索引管理
    一、前言随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了企业面临的重要问题。而数据库索引作为数据库优化的关键手段之一,对于提高数据库性能和查询效率具有重要作用。本文将介绍GaussDB云数据库的索引创建和管理方法,并结合实际应用场景进行分析......
  • GaussDB SQL调优:建立合适的索引
    ​背景GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000+扩展能力,PB级海量存储等企业级数据库特性。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关......
  • 将对象的属性为数值型的转换为String
    将对象的属性为数值型的转换为String1、新建一个类//注意:此处为待转换的类型,returntrue不好用,必须将待转换的类型一一列出usingNewtonsoft.Json;namespaceWinFormsApp1.Common{publicclassToStringConverter:JsonConverter{publicoverrideboo......
  • C标准库<string.h>-str、strn开头的函数
    char*strcat(char*dest,constchar*src)函数功能strcat函数用于将一个字符串追加到另一个字符串的尾部。参数解释dest:指向目标字符串的指针,这个字符串的尾部将被追加 src 字符串的内容。src:指向源字符串的指针,其内容将被追加到 dest 字符串的尾部。返回值返回......
  • C标准库<string.h>-mem开头的函数
    void*memchr(constvoid*str,intc,size_tn)函数功能在参数str所指向的内存区域的前n个字节中搜索第一次出现字符c(转换为无符号字符类型)的位置。参数解释str:指向要被搜索的内存区域的指针。c:要搜索的字符,以整数形式给出,但会被转换为无符号字符类型进行搜索。n:指定要搜......
  • 易优CMS为何我安装完提示这个报错?:Array and string offset access syntax with curly
    当你遇到类似 Arrayandstringoffsetaccesssyntaxwithcurlybracesisdeprecated 的报错时,通常是因为当前使用的PHP版本较高,而程序代码中使用了一些已弃用的语法。原因分析PHP版本过高:当前使用的PHP版本(如PHP7.4或更高版本)不再支持某些旧的语法形式。代码使......