【问题标题】:How do I repeat the first character of words in a string?如何重复字符串中单词的第一个字符?
【发布时间】:2017-12-14 21:21:51
【问题描述】:

使用 Ruby 2.4。我有一个带有字母和空格的字符串。例如,

"abc def"

如何更改字符串以复制每个单词的第一个字符?也就是说,上面会变成:

"aabc ddef"

因为“a”和“d”是上述字符串中单词的开头。单词是指任何由空格分隔的字符序列。

【问题讨论】:

    标签: ruby string


    【解决方案1】:

    我只是使用 gsub 来查找并加倍它们。

    "abc def".gsub(/\b\w/, '\0\0')
    => "aabc ddef"
    

    【讨论】:

      【解决方案2】:

      您可以将字符串按每个空格分割,并将第一个字符乘以您需要的次数,然后附加或连接“初始”单词:

      p "abc def".split.map { |word| "#{word[0] * 10}#{word}" }.join(' ')
      

      【讨论】:

      • gsub 可以使用相同的块,"abc def".gsub(/\w+/) { ... }
      • 如果你使用gsub,你还不如全力以赴:-P
      • word[0] * 10 + word 也可以用于映射。
      【解决方案3】:

      你可以试试下面的sn-p

      str = "abc def"
      index = 0
      new_str = ""
      
      str.split.each do | string |
          string = string[0] + string
          new_str = new_str + string + " "
          index = index + 1
      end
      
      puts "New string #{new_str}"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多