题目
给定一个字符串,逐个翻转字符串中的每个单词。
说明:
1、无空格字符构成一个 单词 ;
2、输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括;
3、如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
示例 :
输入:" hello world! "
输出:“world! hello”
解释:输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
提示:
1、1 <= s.length <= 104;
2、s 包含英文大小写字母、数字和空格 ’ ';
3、s 中 至少存在一个 单词。
注意点
实现步骤:
- 去除字符串前后的空格;
- 通过空格(一个或多个)将字符串分割为一个一个的单词;
- 将单词进行翻转;
- 使用空格将单词拼接起来。
实现
class Solution {
public String reverseWords(String s) {
// 去除前后的空格
s = s.trim();
// 通过空格(一个或多个)将字符串分割为一个一个的单词
String[] split = s.split("\\s+");
// 将单词存储在list集合中(便于翻转)
List<String> words = Arrays.asList(split);
// 将单词翻转
Collections.reverse(words);
// 使用空格将单词拼接起来
return String.join(" ", words);
}
}