【发布时间】:2017-12-14 21:21:51
【问题描述】:
使用 Ruby 2.4。我有一个带有字母和空格的字符串。例如,
"abc def"
如何更改字符串以复制每个单词的第一个字符?也就是说,上面会变成:
"aabc ddef"
因为“a”和“d”是上述字符串中单词的开头。单词是指任何由空格分隔的字符序列。
【问题讨论】:
使用 Ruby 2.4。我有一个带有字母和空格的字符串。例如,
"abc def"
如何更改字符串以复制每个单词的第一个字符?也就是说,上面会变成:
"aabc ddef"
因为“a”和“d”是上述字符串中单词的开头。单词是指任何由空格分隔的字符序列。
【问题讨论】:
我只是使用 gsub 来查找并加倍它们。
"abc def".gsub(/\b\w/, '\0\0')
=> "aabc ddef"
【讨论】:
您可以将字符串按每个空格分割,并将第一个字符乘以您需要的次数,然后附加或连接“初始”单词:
p "abc def".split.map { |word| "#{word[0] * 10}#{word}" }.join(' ')
【讨论】:
"abc def".gsub(/\w+/) { ... }。
gsub,你还不如全力以赴:-P
word[0] * 10 + word 也可以用于映射。
你可以试试下面的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}"
【讨论】: