【问题标题】:How do I add characters between each character in a string in ruby?如何在 ruby​​ 中的字符串中的每个字符之间添加字符?
【发布时间】:2021-04-13 13:37:58
【问题描述】:

如果我有一个字符串“hello”,我将如何在字符串中的每个字符之间添加字符,使其看起来像“h--e--l--l--o”

【问题讨论】:

  • @Sebastian,我不怀疑这个问题是一个重复但它不是你在结束问题时引用的问题的重复。前面的问题会问如何将'hello' 转换为'h-e-l-l-o-',而不是'h-e-l-l-o',这是一个很大的不同。我建议重新打开它,直到找到合适的 dup 参考。
  • 是的,我知道有一个非常相似的问题。如果找到,我们可以更新和/或重新打开它。谢谢@CarySwoveland。
  • @Sebastian,我投票决定重新开放,瞧,它重新开放了。我认为这需要几票才能发生(除非你重新打开它)。如果您愿意,请重新关闭。对维多利亚感到困惑。

标签: ruby


【解决方案1】:

您可以通过使用带有正则表达式的String#gsub 将字符串转换为数组来做到这一点:

"hello".gsub(/(?<=.)(?=.)/, '--')
  #=> "h--e--l--l--o".

(?&lt;=.) 是一个正向lookbehind,断言匹配前面有一个字符,(?=.) 是一个正向lookahead,断言匹配后面跟着一个字符。请注意,匹配是零宽度;它是匹配的连续字符之间的位置。

【讨论】:

    【解决方案2】:

    有很多解决方案,我建议如下:

    1/ 用chars将字符串拆分成单个字符的array

    "hello".chars
    => ["h", "e", "l", "l", "o"]
    

    2/join它们加上你想在每个字符之间添加的两个字符

    ["h", "e", "l", "l", "o"].join('--')
    => "h--e--l--l--o"
    

    你可以这样在一行中执行:

    "hello".chars.join('--')
    

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 2022-11-12
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2021-12-26
      相关资源
      最近更新 更多