Reverse Words in a String III

今天主要介绍字符串的split()方法,看到这里,你肯定心里在想题主傻逼,这么简单的方法还需要记录再博客里?

没错,题主确实是特别傻逼,总是容易把简单的问题想复杂难过

不逼逼了,首先介绍一下split()方法吧:

    这个方法可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组里,分隔符可以是字符串,也可以是RegExp对象;

    split()方法可以接受可选的第二个参数,用于指定数组的大小,以便确保返回的数组不会超过既定大小。

用到这个方法主要是由于下面的题目:

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

根据题目,首先想到的是将长字符串分割成子字符串后,在将子字符串进行倒序输出,代码如下:

var reverseWords = function(s) {
    for(var i = 0; i < s.length; i++){
        if(s[i] === ' '){
            s = s.replace(' ', '/');
       }
    }
    var arr = s.split("/");
    var str = '';
    for(var j = 0; j < arr.length; j++){
        str += ' ';
        for(var k = arr[j].length - 1; k >= 0; k--){
            str += arr[j][k];
        }
    }   
    return str.substr(1, str.length-1);
};

所以说题主傻逼呢,为什么这里分割字符串非得用到'/',空格不是一样可以分割吗?

所以简化代码:

var reverseWords = function(s) {
    var arr = s.split(' ');
    var str = '';
    for(var j = 0; j < arr.length; j++){
        str += ' ';
        for(var k = arr[j].length - 1; k >= 0; k--){
            str += arr[j][k];
        }
    }   
    return str.substr(1, str.length-1);
};
但是,将字符串进行倒序除了上面一种方法,还可以将子字符串再次分割为数组后,调用数组的reverse()方法,代码如下:

var reverseWords = function(s) {
    var str = s.split(" ");
    for(let i = 0;i < str.length;i++){
        str[i] = str[i].split("").reverse().join("");
    }
    return str.join(" ");
};
写这篇文章主要是为了吐槽我的木头脑袋了,就酱~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值