马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
什么是String
- Rust的焦点语言中只有一个String类型,那就是String slice,str通常被看成是&str的借用。
- String类型是通过标准库提供的,而不是直接编码到焦点语言中,它是一个可增长的、可变的、utf-8编码的类型。
- str和String都是utf-8编码的。如果你想利用一个非utf-8编码的String,可以利用OsString。
创建新的String
- String实际上是通过包装bytes类型的vector实现的。
- 利用new方法创建String:let mut s = String::new()
- 利用to_string方法创建String:
- let data = "initial contents";
- let s = data.to_string();
- let s = "initial contents".to_string();
复制代码 - 利用String::from方法创建字符串,let s = String::from("initial contents").
- 根据指定的容量,创建一个空字符串let mut s = String::with_capacity(10);。当字符串长度小于10的时间,不会触发内存重分配。
- 可以通过len方法检察字符串长度,通过capacity方法检察字符串容量。
- 通过utf-8类型的vector创建字符串。
更新String
利用push_str和push追加字符串
- let mut s = String::from("foo");
- s.push_str("bar");
- // s is foobar
复制代码 push_str方法不会改变字符串的所有权
- let mut s = String::from("lo");
- s.push('l');
- // s is lol
复制代码 利用+操作符或者 format!宏连接字符串
- let s1 = String::from("Hello, ");
- let s2 = String::from("world!");
- let s3 = s1 + &s2; // note s1 has been moved here and can no longer be used
复制代码- let s1 = String::from("tic");
- let s2 = String::from("tac");
- let s3 = String::from("toe");
- let s = format!("{s1}-{s2}-{s3}");
复制代码 Rust不允许利用下标访问字符串里面的单个字符
迭代字符串的方法
- 可以利用chars方法访问独立的UniCode字符。利用bytes方法访问每一个字节。
- for c in "Зд".chars() {
- println!("{c}");
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |