思路:首先,反转后字符串前后不能有空格,所以说,要用一个函数去掉字符串前后的空格trim(),
之后,用split()函数,把原字符串按照空格分隔,成为一个字符串数组
https://www.cnblogs.com/Berryxiong/p/6232373.html
知识补充
-
String的split方法支持正则表达式;
-
正则表达式
\s
表示匹配任何空白字符,+
表示匹配一次或多次。
之后,反转字符串数组,使得字符串数组的顺序等于最后的顺序
最后,逐个把结果加到res里,要注意结果字符串的前后不能用空格
class Solution { public String reverseWords(String s) { String[]s1=s.trim() .split("\\s+");//先去掉左右两端多余的空格(多少个都行),之后按照空格(可以是若干个空格)把字符串分割成字符串数组 int i=0; int j=s1.length-1; while(i<j)//交换字符串数组的前后顺序,使之成为结果里需要的那个顺序 { String temp=s1[i]; s1[i]=s1[j]; s1[j]=temp; i++; j--; } String res="";//结果 for(int k=0;k<s1.length;k++) { res+=s1[k]; if(k==s1.length-1) { break;//到了最后一个单词,不需要再加空格了 } res+=" "; } return res; } }