Rust 学习笔记

字符串篇

字符串String与字符串切片&str

字符串 分配在堆内存中,大小可以增长push_str()
‘&str’ 字符串切片,用&[u8]来表示指向utf-8序列,使用&str字符串切片可以查看字符串中存在的数据–遍历字符串。
字符串是可变的引用,而&str是不可变的引用,即,字符串可以被更改,追加,但是&str不可以往里面追加数据或者更改里面原有的数据。
字符串包含其数据的所有权,而&str没有所有权,它是从另一个变量借用而来。

声明字符串的两种方式
//String::new()
let mut a = String::new();
a.pust_str("Hello World");
println!("{}",a);

let mut b = String::from("Hello Rust!");
println!("{}",b);
追加字符串

push_str(&str);
push(char);

let mut a = String::from("Hello ");
a.push_str("World!");
println!("{}",a);
字符串与字符串切片的互相转换

String > slice:&[u8] 使用as_bytes()
&str > slice:&[u8] 使用as_bytes()
u8 > char 使用 u8 as char
String > &str 使用&s[…] 或者 s.as_str()
&str > String 使用 s.to_string()

	// String > &str
	let a :String = String::from("Hello World!");
	let b:&str = &a[..];	//字符串转换为&str		方法一
	let b_2:&str = a.as_str();
	//&str > String
	let c = "Hello World";
	let d = c.to_string();		//字符串切片转换为String
	//String > slice:&[u8]
	 let ee = String::from("Hello 世界");
   let bb:&[u8] = ee.as_bytes();
   println!("as_bytes():\n");
   for i in bb{
       println!("{}",i);
   }
	//u8 > char
	let de = b'A';
    let de_str = de as char;
   println!("de_str : {}",de_str);
	
字符串切片/切割字符串
let s = "Hello World";
let a = &s[1..4];
println!("{}",a);

输出 ell

遍历字符串
//以单字节的形式遍历字符串
fn each_str(s: &str){
	for i in s.chars(){
		//do something
		print!("{}",i);
}
}

//以bytes的形式遍历
let c = "Hello World";
let d = b.bytes();
    for i in d{
        print!("{},",i)
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值