【问题标题】:Iterating Over Each Word In a String in Ruby [duplicate]在Ruby中迭代字符串中的每个单词[重复]
【发布时间】:2015-12-08 07:15:15
【问题描述】:

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

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

我需要所有单词都大写。如何?没有提到任何内容here

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

【问题讨论】:

  • 在我的多次搜索中从未见过。
  • 找出是否有重复并不总是那么简单。 :-) 无论如何,问你的问题没有错。

标签: ruby string


【解决方案1】:
h = "hello world and good morning" 
h.split.map(&:capitalize).join(' ')
#=> "Hello World And Good Morning"

【讨论】:

  • 我发布了我的答案,你也发布了!
  • 我会在几分钟内标记你的正确
【解决方案2】:

这是使用gsub 的另一种方法:

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

它基本上对字符串开头 (\A) 或空格 (\s) 之后的任何“单词字符” (\w) 运行 upcase 方法。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 2010-09-19
      相关资源
      最近更新 更多