翻转含空格的单词字符串顺序(滤掉空格)

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
在这里插入图片描述
说明:

  • 无空格字符构成一个单词。
  • 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
  • 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

解法一

解题思路:

1.先用trim()把字符串两端的空格去掉
2.再用split()把字符串根据空格分隔为一个个单词块存储在数组中
3.接着用filter()过滤掉数组中的纯空格
4.用reverse()进行数组反转
5.最后用join()把数组元素用空格连接为字符串

解:

var reverseWords = function(s) {
	  //去掉字符串首尾的空格字符 返回新字符串 不是在原字符串上进行修改
	  var str = s.trim();
	  //将该字符串按空格分成一个个的块 用数组存储
	  var arr = str.split(' ');
	  //将数组中的空格元素过滤
	  var arr1 = arr.filter(function(item){
	  	if(item == ''){
	  		return false;
	  	}
	  	return true;
	  })
	  //将数组元素翻转
	  arr1.reverse();
	  //将数组元素用空格连接为字符串
	  var str1 = arr1.join(' ');
	  return str1;
};

代码简化:

var reverseWords = function(s) {
	return s.trim().split(' ').filter(item => item != '').reverse().join(' ');
}

解法二

解题思路:

1.先用trim()把字符串两端的空格去掉
2.再用replace()把字符串中剩余的连续空格替换为单个空格
3.接着用split()把字符串根据空格分成一个个的块,存储在数组中
4.用reverse()方法反转数组
5.最后用join()把数组元素用空格连接为字符串

解:

 var reverseWords = function(s) {
	return s.trim().replace(/\s+/g,' ').split(' ').reverse().join(' ');return s.trim().split(/\s+/g).reverse().join(' ');
 }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值