在Ruby中的字符串中迭代每个单词

时间:2015-12-08 07:15:16

标签: ruby string

我是否需要更多的代码行才能使字符串中的每个单词都使用ruby来大写?

h = "hello world and good morning"
h.capitalize #=> Hello world and good morning

我需要所有的词都被大写。怎么样?没有提到任何内容here

我是否需要一个凌乱的代码来提取每个单词,使用正则表达式,转换为大写然后放回字符串?听起来很混乱。有一个简单的方法吗?

3 个答案:

答案 0 :(得分:1)

h = "hello world and good morning" 
h.split.map(&:capitalize).join(' ')
#=> "Hello World And Good Morning"

答案 1 :(得分:1)

以下是使用gsub的替代方法:

h = "hello world and good morning"
h.gsub(/(?<=\A|\s)\w/, &:upcase)
# => "Hello World And Good Morning"

它基本上在任何&#34;字符&#34;上运行upcase方法。 (\w)在字符串开头(\A)或空格(\s)之后出现。{/ p>

答案 2 :(得分:0)

如果在本网站的其他地方有帖子,那么你可以关闭它,但我找到了答案:

h.split.map(&:capitalize).join(' ')
#=> Hello World And Good Morning