Rust: 逆序输出&str

逆序输出,本来是很简单的。

比如:对于一个vector(), 可以用reverse().

    let mut r = [1, 2, 3];
    r.reverse(); # r =[3,2,1]
    let mut s = ["a","b","c"];
    s.reverse(); # s =["c","b","a"]

但需要注意!!!!

   let mut s = ["a","b","c"]; # [1,2,3]也一样!
   let vs =s.reverse(); # vs =();    

一、对于“world”=>”dlrow”?

是否可用reverse()? 不可以直接用。

let s = "abcd".to_string(); #或 s="abcd"也一样。
s.reverse();# error!

rev()? 情况也一样。

let s = "abcd".to_string(); #或 s="abcd"也一样。
s.rev();# error!

1、笨办法

fn solution(phrase: &str) -> String {
    let data = phrase
        .chars()
        .into_iter()
        .map(|x| x.to_string())
        .collect::<Vec<_>>();
    let len = data.len();
    let mut v: Vec<String> = Vec::new();
    for i in 0..len {
        let temp = data.get(len - i - 1).unwrap();
        v.push(temp.to_string());
    }
    let r = v.join("");
    r.to_string()
}

2、简洁的方法

fn solution(phrase: &str) -> String {
    phrase.chars().rev().collect()
}

二、rev()、reverse() 对于&str

关于rev()的用法

    let s = "abcd";
    let rs = s.chars().rev();
    #let rs = s.chars().reverse();  # =>error!   
    println!("rev2 :{:?}", rs);

运行结果:

rev2 :Rev { iter: Chars { iter: Iter([97, 98, 99, 100]) } }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rust中的字符串是一个动态可变的数据类型,称为`String`。通过`String`类型,我们可以创建、修改、操作和处理字符串。 在Rust中,有多种方法可以创建`String`。最常见的方法是使用`format!`宏来构建一个字符串,或者通过`to_string()`方法将其他类型转换为字符串。 ```rust let hello = "Hello".to_string(); let world = String::from("World"); let message = format!("{} {}", hello, world); ``` `String`类型与基本类型(`&str`)之间可以互相转换。使用`&`运算符可以获取`String`类型的引用,而通过使用像`to_string()`这样的方法,可以将`&str`转换为`String`。 ```rust let hello: &str = "Hello"; let hello_string: String = hello.to_string(); ``` 在Rust中,可以使用`+`运算符将两个字符串连接起来,或使用`push_str`方法将一个字符串附加到另一个字符串上。这两种方法都会创建一个新的`String`对象。 ```rust let hello = String::from("Hello"); let world = String::from("World"); let hello_world = hello + &world; // 可以使用&运算符获取world的引用 ``` 当需要修改字符串时,Rust提供了很多有用的方法。我们可以使用`replace`方法来替换子字符串,使用`trim`方法来去除字符串两侧的空格,使用`split`方法将字符串拆分为多个部分等等。 ```rust let message = String::from("Hello World"); let replaced = message.replace("World", "Rust"); let trimmed = message.trim(); let mut parts = message.split_whitespace(); ``` 总之,Rust中的`String`类型提供了许多功能强大且安全的方法来创建、操作和处理字符串。它的灵活性和性能使得在处理字符串时可以更加方便、高效地进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值