字符串:用数字替换空格



我想用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 的最佳选择

相关内容

  • 没有找到相关文章

最新更新