题目:反转字符串里的单词。
注意:
- 输入字符串可以在前面或者后面包含多余的空格,但是反转后前后不能包括。
- 如果两个单词间有多个空格,将反转后单词间的空格减少到只含一个。
解题:
/**
* 反转字符串里的单词,例如:“ hello word ” 反转成 "word hello"
* @param str 原字符串
* @return 返回反转后的字符串
* 正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等
* \s+则表示匹配任意多个空白字符
*/
public String reverseWords(String str) {
String[] array = str.trim().split("\s+");// 删除首尾空格,以'\s+'分割字符串,
StringBuffer sb = new StringBuffer();
for (int i = array.length - 1; i >= 0; i--) {// 倒序遍历
sb.append(array[i]).append(" "); // 将单词拼接
}
return sb.toString().trim();// 转化为字符串,删除空格并返回
}