2

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

坚持以下几点:

字符串 = <<-这里
              我喜欢炸玉米饼。我听见
   它们美味又营养

这里

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

输出需要如下所示:

              我喜欢炸玉米饼。我听见
   它们美味又营养

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

4

3 回答 3

6

这是一个可以满足您要求的单线:

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

我知道您说“没有大写”,但在这种情况下,它只是将第一个字母大写。如果您对此有任何疑问,请告诉我。

为了解决您对另一个答案的评论,您始终可以使用gsub!在不创建副本的情况下对字符串进行适当的变异。

于 2013-01-23T03:13:10.993 回答
3
string.gsub!(/^\s*\w/){|match| match.upcase}

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

于 2013-01-23T03:16:24.063 回答
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
于 2013-01-23T02:49:21.030 回答