Rust字符串处理
Trim移除字符串开始末尾的字符串
fn main() {
let s = " Hello Rust! ";
// trim移除字符串开始末尾的空格
// "Hello Rust!"
println!("{}", s.trim());
// trim_start移除字符串开始的空格
// "Hello Rust! "
println!("{}", s.trim_start());
// trim_end移除字符串末尾的空格
// " Hello Rust!"
println!("{}", s.trim_end());
let s = "abcabcabcHello Rust!abcabcabc";
// trim_start_matches移除字符串开始匹配的字符串
// "Hello Rust!abcabcabc"
println!("{}", s.trim_start_matches("abc"));
// trim_start_matches移除字符串开始匹配的字符串
// "abcabcabcHello Rust!"
println!("{}", s.trim_end_matches("abc"));
}
swap交换两个字符
fn main() {
// 1. as_mut_vec
let mut s = "中abc".to_string();
unsafe {
// 交换第0个和第1个元素
s.as_mut_vec().swap(0, 1);
}
// 乱码abc
println!("{}", s);
// 2. chars
let s = "中abc".to_string();
let mut arr: Vec<char> = s.chars().collect();
// 交换第0个和第1个元素
arr.swap(0, 1);
let s: String = arr.into_iter().collect();
// a中bc
println!("{}", s);
// 3. into_bytes
let s = "abc".to_string();
let mut arr = s.into_bytes();
unsafe {
// 交换第0个和第1个元素
std::ptr::swap(&mut arr[0], &mut arr[1]);
}
let s = String::from_utf8(arr).unwrap();
// bac
println!("{}", s);
// 4. replace_range
let mut s = "abc".to_string();
// tmp: &alloc::string::String
let tmp = &s[0..1].to_string();
// 交换第0个和第1个元素
// cannot borrow `s` as mutable because it is also borrowed as immutable
// s.replace_range(0..1, &s[1..2]);
s.replace_range(0..1, &s[1..2].to_string());
s.replace_range(1..2, tmp);
// bac
println!("{}", s);
}
Rust字符串处理的更多相关文章
- 一个简单的rust字符串时钟
1.简介 用rust写的一个简单的练手的demo,一个字符串时钟,在终端用字符串方式显示当前时间.本质是对图片取灰度,然后每个像素按灰度门限用星号代替灰度值,就把图片变为由星号组成的字符型图案.把 ...
- rust字符串的slice
fn main() { let s = String::from("hello dj"); //字符串字面值实际就是字符串的切片,所以 let ss ="hello dj ...
- Rust入坑指南:鳞次栉比
很久没有挖Rust的坑啦,今天来挖一些排列整齐的坑.没错,就是要介绍一些集合类型的数据类型."鳞次栉比"这个标题是不是显得很有文化? 在Rust入坑指南:常规套路一文中我们已经介绍 ...
- 【译】通过 Rust 学习解析器组合器 — Part 1
原文地址:Learning Parser Combinators With Rust 原文作者:Bodil 译文出自:掘金翻译计划 本文永久链接:https://github.com/xitu/gol ...
- FinClip小程序+Rust(三):一个加密钱包
一个加密货币钱包,主要依赖加密算法构建.这部分逻辑无关iOS还是Android,特别适合用Rust去实现.我们看看如何实现一个生成一个模拟钱包,准备供小程序开发采用 前言 在之前的内容我们介绍了整 ...
- Rust中的字符串处理
一路看过来,怕是我知道的所有语言当,处理最复杂吧. 当然,如果能正确处理,也是能理解最到位的. 这,就是我为什么要学Rust的原因. 暂无用武之地,但逻辑体系和知识点够复杂,才能应对更多事务~ fn ...
- Rust初步(七):格式化
在Rust中,如果要进行屏幕输出,或者写入到文件中,需要对数据进行格式化.这一篇总结一下它所支持的几种格式化方式. 这篇文章参考了以下官方文档,不过,按照我的风格,我还是会突出于C#语言的比较,这样可 ...
- 计算文件的MD5值(Java & Rust)
Java public class TestFileMD5 { public final static String[] hexDigits = { "0", "1&qu ...
- Rust入门篇 (1)
Rust入门篇 声明: 本文是在参考 The Rust Programming Language 和 Rust官方教程 中文版 写的. 个人学习用 再PS. 目录这东东果然是必须的... 找个时间生成 ...
- Java字符串格式化记录
最近打log的时候用到了字符串的格式化. Java中String格式化和C语言的很类似.把情况都列出来,以后好查询. public static void main(String[] args) { ...
随机推荐
- OpenLayers之图形交互绘制
一.实验内容 回顾鼠标事件及事件对象,练习鼠标坐标获取: 点.线.面.圆等常规图形的交互绘制: 点.线.面.圆等常规图形的样式编辑: 点.线.面.圆等常规图形编辑: 二.实验步骤 2.1 鼠标坐标获取 ...
- Postgresql模板数据库之template1 和 template0
一.简介 template1和template0是PostgreSQL的模板数据库.所谓模板数据库就是创建新database时,PostgreSQL会基于模板数据库制作一份副本,其中会包含所有的数据库 ...
- Java的注释和标识符
java 的注释规则 1. 单行注释 语法:// 描述://用于当行注释,与JavaScript一样 //这是一个代码注释 2. javadoc注释 语法: /** *注释内容 / 描述:多行注释中可 ...
- crypto-gmsm国密算法库
crypto-gmsm国密算法库 一.开发背景 crypto-gmsm国密算法库是国密商密算法(SM2,SM3,SM4)工具类封装,国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,目前主 ...
- JavaScrip 学习笔记
<script> $().ready(function () { // 在键盘按下并释放及提交后验证提交表单 $("#form1").validate({ errorE ...
- [NPUCTF2020]认清形势,建立信心
[NPUCTF2020]认清形势,建立信心 题目 from Crypto.Util.number import * from gmpy2 import * from secret import fla ...
- gcc 内联汇编简介
啊 啊 在内联汇编中,标识寄存器的一个%变成了两个% 啊 如图是内联汇编的模板 assembler template 是汇编代码 output operands TODO input operands ...
- SVN的安装和使用手册2
转载:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需 ...
- Win10 修改系统自带字体
文章来源: Win10怎样更改系统字体?Win10默认字体修改教程 - 系统之家 (xitongzhijia.net) 苹方字体下载,window系统专用[2021最新版]免费下载 - 知乎 (zhi ...
- python连接数据库系列
1.Python连接MySQL 具体详情参考:MySQL笔记 Python连接MySQL需要借助pymysql,安装pymysql pip install pymysql 1.1 pymysql连接数 ...