Ruby用空格大写第一个字符

时间:2013-01-23 02:32:43

标签: ruby

一些规则:必须使用大写(不是大写或任何其他表达式)

坚持以下内容:

string = <<-HERE
              i love tacos.  I hear
   they are delicious and nutritious

HERE

我需要将每行的第一个单词用空格大写,并且无法弄清楚如何完成它:

输出需要如下所示:

              I love tacos.  I hear
   They are delicious and nutritious

任何指导或帮助将不胜感激。我甚至会指出正确的方向,而不是答案!

3 个答案:

答案 0 :(得分:6)

这是一个符合你要求的单线:

string.gsub(/^\s*\w/) {|match| match.upcase }

我知道你说“没有垮掉”,但在这种情况下,它只是提升了第一个字母。如果您对此有任何疑问,请与我们联系。

要解决您对其他答案的评论,您始终可以使用gsub!在不创建副本的情况下改变字符串。

答案 1 :(得分:3)

string.gsub!(/^\s*\w/){|match| match.upcase}

这将在不创建新字符串的情况下执行您想要的操作。

答案 2 :(得分:1)

这会有用吗?

string = <<-HERE
              i love tacos.  I hear
   they are delicious and nutritious

HERE

string.gsub!(/(^\s*)(\w)/) do |match|
  $1 << $2.capitalize
end

尝试做的是将字符串拆分为换行符,搜索第一个字母,将其大写并重新加入片段。

这将产生:

>           I love tacos.  I hear
   They are delicious and nutritious