/*
*/
fn test_1() {
//新建字符串:
let string = String::new();
//字符串长度:
let len = string.len();
//基础类型转换成字符串:
let one = 1.to_string(); // 整数到字符串
let float = 1.3.to_string(); // 浮点数到字符串
let slice = "slice".to_string(); // 字符串切片到字符串
let my_int = one.parse::<i32>().unwrap();
let my_float = float.parse::<f32>().unwrap();
let my_slice = slice.as_str();
}
//包含 UTF-8 字符的字符串:
fn test_2() {
let hello = String::from("السلام عليكم");
let hello = String::from("Dobrý den");
let hello = String::from("Hello");
let hello = String::from("שָׁלוֹם");
let hello = String::from("नमस्ते");
let hello = String::from("こんにちは");
let hello = String::from("안녕하세요");
let hello = String::from("你好");
let hello = String::from("Olá");
let hello = String::from("Здравствуйте");
let hello = String::from("Hola");
}
//字符串追加:
fn test_3() {
let mut s = String::from("run");
s.push_str("oob"); // 追加字符串切片
s.push('!'); // 追加字符
println!("{}", s);
}
//用 + 号拼接字符串:
fn test_4() {
let s1 = String::from("Hello, ");
let s2 = String::from("world!");
let s3 = s1 + &s2;
println!("{}", s3);
}
//这个语法也可以包含字符串切片:
fn test_5() {
let s1 = String::from("tic");
let s2 = String::from("tac");
let s3 = String::from("toe");
let s = s1 + "-" + &s2 + "-" + &s3;
println!("{}", s);
}
//使用 format! 宏:
fn test_6() {
let s1 = String::from("tic");
let s2 = String::from("tac");
let s3 = String::from("toe");
let s = format!("{}-{}-{}", s1, s2, s3);
println!("{}", s);
}
//字符串长度:
fn test_7() {
let s = "hello";
let len = s.len(); //5
let s = "你好";
let len = s.len(); //这里 len 的值是 6。因为中文是 UTF-8 编码的,每个字符长 3 字节,所以长度为6。
let len = s.chars().count(); //如果想统计字符数量可以先取字符串为字符集合:
let s = "hello你好";
let len = s.chars().count();//7
}
fn main() {
test_1();
test_2();
test_3();
test_4();
test_5();
test_6();
test_7();
}