31天会用Rust——Day12,字符串

1,切片,字符串

切片由双引号包围,不可变,类型为&str。
字符串是String实例,可变,类型为String。

2,创建String

创建空串。

fn main() {
    
    
    let a: String = String::new();
    println!("{}", a);
}

由切片转化。有两种方法。

fn main() {
    
    
    let a: String = String::from("你好,世界!");
    println!("{}", a);

    let b: String = "你好,世界!".to_string();
    println!("{}", b);
}

你好,世界!
你好,世界!

3,追加

追加字符:push()
追加切片:push_str()

fn main() {
    
    
    let mut a: String = String::from("你好,世界!");
    println!("{}", a);

    a.push('1');
    println!("{}", a);

    a.push_str("234");
    println!("{}", a);
}

你好,世界!
你好,世界!1
你好,世界!1234

4,合并多个String

利用format宏。

fn main() {
    
    
    let s1 = String::from("A");
    let s2 = String::from("B");
    let s3 = String::from("C");

    let s = format!("{}-{}-{}", s1, s2, s3);
    println!("s:{}", s);
}

s:A-B-C

5,遍历

字符遍历:chars()
字节遍历:bytes()

fn main() {
    
    
    let msg = "你好,世界!".to_string();
    for b in msg.chars() {
    
    
        print!("{}", b);
    }
    print!("\n===========\n");
    for b in msg.bytes() {
    
    
        print!("{},", b);
    }
}

效果:

在这里插入图片描述

6,截取切片

特点:中文不支持截取。

截取首个字符。
左开右闭:取到左边,取不到右边。

fn main() {
    
    
    let msg = "hello world".to_string();
    let msg2 = &msg[0..1];
    println!("{}", msg2);
}

h

可以取到右边的写法:

&msg[0..=1]

省略一边,表示头和结尾。

&msg[0..]
&msg[..=1]

猜你喜欢

转载自blog.csdn.net/qq_37284843/article/details/124177169
今日推荐