rust学习 字符串
·
fn main() {
let mut s=String::new();
s.push('a'); //添加一个字符
s.push_str("hello");
s.push_str(" world");
println!("{}",s);
let s1=String::from("hi");
let s2=&s1;
println!("{}",s1);
let s3 = "hello every".to_string();
println!("{}",s3);
println!("{}",s3);//宏不影响
let s4=format!("{}{}{}","a","b","c");
println!("{}",s4);
println!("{}",s4);
let s51=String::from("b");
let s52=String::from("c");
let s5=format!("{}{}{}","a",s51,s52);
println!("{}",s5);
println!("{}",s5);
// let s6="a"+"b";//错误 `+` cannot be used to concatenate two `&str` strings
// let s7="a"+s51; //错误
let s7=s51+"a";//String必须在前面
//s1[0];//`std::string::String` cannot be indexed by `{integer}
let s8="hello";
// let s9=s8[0];//required because of the requirements on the impl of `std::ops::Index<{integer}>` for `str'
//String 和 &str 都不能索引,处理字符请使用 .chars() 迭代器。
let s = String::from("hello");
// 正确方式1:chars()
for c in s.chars() {
println!("{}", c);
}
let first_char = s.chars().next(); // Option<char>
println!("{:?}", first_char); // Some('h')
// 正确方式2:收集为Vec
let chars: Vec<char> = s.chars().collect();
println!("第一个字符: {}", chars[0]);
// 正确方式3:字节索引(仅ASCII)
let bytes = s.as_bytes();
println!("第一个字节: {}", bytes[0] as char);
// 处理中文
let chinese = String::from("你好");
let first = chinese.chars().next().unwrap();
println!("第一个中文字符: {}", first); // '你'
//String和&str的转换
let a = "wzg";
let b = a.to_string();
let b = String::from(a);
let b = a.to_owned();
let a = &b;
let a = &b[..];
let a = format!("{}", b);
}
更多推荐



所有评论(0)