Reverse Words in a String III

来源:互联网 发布:怎么复制筛选后的数据 编辑:程序博客网 时间:2024/06/06 19:04

今天主要介绍字符串的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(" ");};
写这篇文章主要是为了吐槽我的木头脑袋了,就酱~



原创粉丝点击