Ruby “红宝石之路”;abcd";变成;“a b c d”;(例如用空格填充每个字符)

Ruby “红宝石之路”;abcd";变成;“a b c d”;(例如用空格填充每个字符),ruby,string,Ruby,String,我看到了如何删除多余的空格,但没有看到一种简单的方法(除了手动迭代)将字符串“happy”转换为“happy”(有没有最后的空格无关紧要)正则表达式是一种简单的方法: 'happy'.gsub(/./) { |m| m + ' ' } # "h a p p y " 或者更多: 'happy'.gsub(/./) { |m| m + ' ' }.strip # No trailing space. 'happy'.gsub(/./) { $& + ' ' } # Tra

我看到了如何删除多余的空格,但没有看到一种简单的方法(除了手动迭代)将字符串“happy”转换为“happy”(有没有最后的空格无关紧要)

正则表达式是一种简单的方法:

'happy'.gsub(/./) { |m| m + ' ' }
# "h a p p y "
或者更多:

'happy'.gsub(/./) { |m| m + ' ' }.strip # No trailing space.
'happy'.gsub(/./) { $& + ' ' }          # Trailing space, uses global $& variable.
'happy'.gsub(/./) { $& + ' ' }.strip    # Ues global variable, no trailing space.
'happy'.chars.to_a.join(' ')            # No regex, no trailing space.
'happy'.split('').join(' ')             # No regex, no trailing space.

我有点“喜欢”拆分/
加入
的方法。

正则表达式是一种简单的方法:

'happy'.gsub(/./) { |m| m + ' ' }
# "h a p p y "
或者更多:

'happy'.gsub(/./) { |m| m + ' ' }.strip # No trailing space.
'happy'.gsub(/./) { $& + ' ' }          # Trailing space, uses global $& variable.
'happy'.gsub(/./) { $& + ' ' }.strip    # Ues global variable, no trailing space.
'happy'.chars.to_a.join(' ')            # No regex, no trailing space.
'happy'.split('').join(' ')             # No regex, no trailing space.

我有点“喜欢”拆分的
/
加入的
一个。

我很好奇,所以我对mu的每个答案进行了基准测试(每个10万次)<代码>ruby 1.8.7(2011-06-30 patchlevel 352)[i686-darwin10.8.0]

'happy'.gsub(/./) { |m| m + ' ' }.strip
  2.160000   0.010000   2.170000 (  2.176177)

'happy'.gsub(/./) { $& + ' ' }
  2.220000   0.010000   2.230000 (  2.264467)

'happy'.gsub(/./) { $& + ' ' }.strip
  2.480000   0.010000   2.490000 (  2.490261)

'happy'.chars.to_a.join(' ')
  1.040000   0.000000   1.040000 (  1.055694)

'happy'.split('').join(' ') 
  1.350000   0.010000   1.360000 (  1.354991)   

我很好奇,所以我对穆的每一个答案都进行了基准测试(每次10万次)<代码>ruby 1.8.7(2011-06-30 patchlevel 352)[i686-darwin10.8.0]

'happy'.gsub(/./) { |m| m + ' ' }.strip
  2.160000   0.010000   2.170000 (  2.176177)

'happy'.gsub(/./) { $& + ' ' }
  2.220000   0.010000   2.230000 (  2.264467)

'happy'.gsub(/./) { $& + ' ' }.strip
  2.480000   0.010000   2.490000 (  2.490261)

'happy'.chars.to_a.join(' ')
  1.040000   0.000000   1.040000 (  1.055694)

'happy'.split('').join(' ') 
  1.350000   0.010000   1.360000 (  1.354991)   

@bricker:我喜欢它的外观,很好,一眼就能摸到。它没有chars.to_a.join
那么快,但比任何
gsub
方法都快。检查我的答案。@bricker:我喜欢它的外观,很好,一眼就能摸到。它没有chars.to_a.join那么快,但比任何
gsub
方法都快得多。检查我的答案。+1用于基准测试,但如果其中任何一个是你的应用程序的瓶颈,那么你可能做得很好:)不过,知道哪一个最快也无妨+1用于基准测试,但如果其中任何一个是你的应用程序的瓶颈,那么你可能做得不错:)不过,知道哪一个最快也无妨!