我想用一个fixnum替换字符串中的每个blank spaces
(这是blank spaces
的数量。)
让我举个例子:
s = "hello, how are you ?"
omg(s) # => "hello,3how10are2you1?"
你是否看到一种方式(如果可能性感)更新这样的字符串?
谢谢Rubists:)
答案 0 :(得分:10)
gsub
可以为“替换为”参数提供一个块,将块的结果插入到找到匹配的位置。块的参数是匹配的字符串。因此,为了实现这一点,我们尽可能多地捕获空白(/\s+/
)并在每次找到一个部分时将其提供给块,返回该字符串的长度,这将被放回最初找到空白的位置。
代码:
s = "hello, how are you ?"
res = s.gsub(/\s+/) { |m| m.length }
puts res
# => hello,3how10are2you1?
答案 1 :(得分:-1)
可以通过数组拆分来实现:Javascript示例
var s = "hello, how are you ?";
function omg( str ) {
var strArr = str.split('');
var count = 0;
var finalStr = '';
for( var i = 0; i < strArr.length; i++ ) {
if( strArr[i] == ' ' ) {
count++;
}
else
{
if( count > 0 ) {
finalStr += '' + count;
count = 0;
}
finalStr += strArr[i];
}
}
return finalStr
}
alert( omg( s ) ); //"hello,3how10are2you1?"
大声笑,这似乎是最好的javascript