我希望将每个单词的第一个字母放在一起,使"I need help"
之类的内容变为"Inh"
。我想把一切都关掉,然后从那里开始,或者马上抓住每个第一个字母。
答案 0 :(得分:16)
您可以在这里一起使用拆分,地图和加入。
string = 'I need help'
result = string.split.map(&:first).join
puts result #=> "Inh"
答案 1 :(得分:1)
使用正则表达式的替代解决方案
string = 'I need help'
result = string.scan(/(\A\w|(?<=\s)\w)/).flatten.join
puts result
这基本上是说“寻找第一个字母或直接以空格开头的任何字母”。 scan函数返回匹配数组的数组,这些数组被展平(制成一个数组)并连接(制成一个字符串)。
答案 2 :(得分:1)
string = 'I need help'
result = string.split.map(&:chr).join
puts result
答案 3 :(得分:1)
正则表达式如何?在这里使用split方法将重点放在您不需要解决此问题的字符串部分上,然后采取另一步骤提取每个单词的第一个字母(chr)。这就是为什么我认为正则表达式在这种情况下更好。如果字符串中包含-
或其他特殊字符,则该节点也将起作用。然后,您当然可以在末尾添加.upcase
方法以获得适当的缩写。
string = 'something - something and something else'
string.scan(/\b\w/).join
#=> ssase