我想用fixnum(它是blank spaces
的数字)替换字符串中的每个blank spaces
。字符串:用数字替换空格
让我举一个例子:
s = "hello, how are you ?"
omg(s) # => "hello,3how10are2you1?"
你看到的方式(性感如果可能的话)来更新这样的字符串?
谢谢Rubists :)
我想用fixnum(它是blank spaces
的数字)替换字符串中的每个blank spaces
。字符串:用数字替换空格
让我举一个例子:
s = "hello, how are you ?"
omg(s) # => "hello,3how10are2you1?"
你看到的方式(性感如果可能的话)来更新这样的字符串?
谢谢Rubists :)
gsub
最好能需要为“替换为”参数提供一个块,块的结果被插入到找到匹配的地方。该块的参数是匹配的字符串。因此,为了实现这一点,我们捕获尽可能多的空白(/\s+/
),并在每次找到节时将其填充到块中,然后返回该字符串的长度,然后将其放回原来找到空白处。
代码:
s = "hello, how are you ?"
res = s.gsub(/\s+/) { |m| m.length }
puts res
# => hello,3how10are2you1?
则可以通过一个数组拆分做到这一点: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
-1因为OP不使用JavaScript。 – 2011-06-11 23:18:50
谢谢@ pico.creator。我想在Ruby中这样做,但是你的一段代码也很有用,所以我无论如何都要加上+1 :) – 2011-06-11 23:24:21
嗯,我认为它很容易转换,并不是一个好的ruby用户。所以这个例子可以很容易理解 – PicoCreator 2011-06-11 23:26:10
如果它包含一个解释,我会有+1这个答案。 – 2011-06-11 23:20:26
真棒解决方案。 – 2011-06-11 23:21:31
描述加入 – ctcherry 2011-06-11 23:29:19