Ruby - 如何从字符串中仅删除1个空格

Bla*_*eep 0 ruby string ruby-on-rails

我尝试从此字符串中删除1个空格:

m y  r e a l  n a m e  i s  d o n a l d  d u c k
Run Code Online (Sandbox Code Playgroud)

预期结果:

my real name is donald duck
Run Code Online (Sandbox Code Playgroud)

我的代码是:

def solve_cipher(input)

  input.split('').map { |c| (c.ord - 3).chr }.join(' ') # <- Here I tried everything

end

puts solve_cipher('p| uhdo qdph lv grqdog gxfn') 
# => m y  r e a l  n a m e  i s  d o n a l d  d u c k
Run Code Online (Sandbox Code Playgroud)

我尝试了一切来解决我的问题,例如:

input.....join(' ').squeeze(" ").strip # => m y  r e a l  n a m e...
Run Code Online (Sandbox Code Playgroud)

要么

input.....join.gsub(' ','') # => myrealnameisdonaldduck
Run Code Online (Sandbox Code Playgroud)

要么

input.....join(' ').lstrip # => m y  r e a l  n a m e...
Run Code Online (Sandbox Code Playgroud)

等等...

小智 5

好吧,您可以先将字符串拆分为单词,然后将每个单词拆分为字符.使用您在代码中使用的相同方法,它可能看起来像这样.

def solve_cipher(input) input.split(' ').map{ |w| w.split('').map { |c| (c.ord - 3).chr}.join('')}.join(' ') end
Run Code Online (Sandbox Code Playgroud)

当加入同一个单词中的字符时,我们之间没有空格; 当我们一起加入这些单词时,我们在它们之间放置了