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) { ...
随机推荐
- Avalonia 实现平滑拖动指定控件
Avalonia 实现平滑拖动指定控件 1.创建一个UserControl控件,并且添加以下代码 using System; using Avalonia; using Avalonia.Contro ...
- godis实战
- AirTest
1.环境 直接安装AirTest IDE 就可以了 2.连接手机 打开开发者模式,允许Usb调试,手机在电脑界面显示出来即可 3.Airtest辅助窗 4.Poco辅助窗 新建一个air文件 在poc ...
- Decompiling XAPK Files
http://calebfenton.github.io/2016/02/28/decompiling-xapk-files/
- 使用 Fiddler Everywhere 进行抓包
使用 Fiddler Everywhere 进行抓包 开启各项必备功能 在打开浏览器之前需要先开启LiveTraffic为Capturing 然后点击像芯片一样的东西叫Decode(蓝色为开启状态)这 ...
- 安卓调试打包错误Error executing aapt: Return code -1073741819 Error while running zipalign
之前开发完的安卓app项目,再次打开,突然抽风报错. 1.调试运行报错:Error executing aapt: Return code -1073741819 2.打包失败报错: Error wh ...
- Go语言中超过1000个线程panic
1.问题描述 2.实验 3.原理 4.解释 Close太多,Close在Windows上阻塞型的可能会新创建线程,而Linux上是非阻塞型不会新创建线程.
- java SE02
目录 五.面向对象 1. 封装 2. 多态 3. 继承 六.内部类 1. 局部内部类 2. 局部内部类 3. 静态内部类 4.匿名内部类 七.异常 1. 五个关键字 2. 自定义异常 五.面向对象 1 ...
- CentOS7.6下安装MySql和Redis
安装的MySQL为5.7版本1.下载安装官方的Yum Repository [root@localhost ~]# wget http://dev.mysql.com/get/mysql57-comm ...
- 搭PHP本地环境-windows
项目中要用php开发,但是本地没环境调试不方便,所以搭一下本期环境. 1.下载php phpstudy工具官网:https://www.xp.cn/.phpstudy和WAMP工具的不同之处在于,ph ...