【问题标题】:In Rust, how do I concatenate one String with a linefeed and then another String? [duplicate]在 Rust 中,如何将一个字符串与换行符连接起来,然后再连接另一个字符串? [复制]
【发布时间】:2017-05-30 18:05:46
【问题描述】:

我有两个变量,每个变量都包含一个字符串。我想在它们之间用换行符连接两者。我该怎么做?

【问题讨论】:

  • @Shepmaster 请阅读问题。你的答案是错误的,我没有在链接中问同样的问题。
  • 连接字符串就是连接字符串...
  • @Shepmaster 是的,连接字符串是连接字符串,但这不是问题,你的回答真的没有帮助,即使是链接,所以如果你不想帮助,就不要。
  • 问题不必完全相同才能被标记为重复。在这种情况下,链接问题绝对应该满足 Rust 中的所有字符串连接需求。如果您不同意,您应该正确解释为什么建议的问题没有帮助。展示到目前为止您为解决问题所做的尝试也有帮助。您可能希望将来牢记这些提示。
  • @E_net4 在这种情况下它不能解决问题,请参阅下面我对西蒙的回答。换行不是字符串,西蒙的第二个答案是我试图做的,也是我在这里找到的唯一东西。他能够提供一个体面的新答案来解决 mu 问题,而不是浪费每个人的时间将答案标记为重复,而不管你怎么想。

标签: string rust


【解决方案1】:

有几种方法。

我见过的最好的方法是在数组上使用join 方法:

fn main() {
    let a = "Hello";
    let b = "world";
    let result = [a, b].join("\n");

    print!("{}", result);
}

根据您的用例,您可能还喜欢更多控制:

fn main() {
    let a = "Hello";
    let b = "world";
    let result = format!("{}\n{}", a, b);

    print!("{}", result);
}

还有一些手动方式(我认为其中一些完全可以避免任何分配),但我更喜欢以上两种方式。

【讨论】:

  • 谢谢。第一个解决了问题第二个不起作用。
  • “不起作用” - 怎么回事?
  • 由于某种原因我无法理解,第二个建议仅将一行打印为 "Hello\nworld" ,而第一个建议在一行中打印 Hello,第二个中打印 world。
  • 这是这里第二个答案的逐字复制:stackoverflow.com/questions/30154541/…
  • 是的,我被要求把它复制到那里,安迪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 2015-01-04
  • 1970-01-01
  • 1970-01-01
  • 2022-08-04
  • 2017-03-25
相关资源
最近更新 更多