Ruby “红宝石之路”;abcd";变成;“a b c d”;(例如用空格填充每个字符)
我看到了如何删除多余的空格,但没有看到一种简单的方法(除了手动迭代)将字符串“happy”转换为“happy”(有没有最后的空格无关紧要)正则表达式是一种简单的方法: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'.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用于基准测试,但如果其中任何一个是你的应用程序的瓶颈,那么你可能做得不错:)不过,知道哪一个最快也无妨!