在字符串中插入一个 space

Insert a space in string

我正在尝试在找到大写字母之前插入 space。 这是我想出的,但它似乎是一个无限循环。不知道为什么:

def solution(string)
  str = string.split("")
  str.each_with_index do |l, i|
   if l.upcase
    str.insert(l[i], " ")
   end
  end
  str.join("")
end

请让我知道我遗漏了什么。

因为更改正在循环播放的对象通常不是一个好主意。您在找到的大写字母之前插入 space,因此下一次迭代您会再次找到大写字母,一切都会重复。

在这种情况下,正则表达式似乎很合适

def solution(string)
  string.gsub(/[[:upper:]]/, ' [=10=]')
end