
本题综合考察了关于字符串的多种操作,但是只要我们细心处理每种情况,并且考虑好遍历过程中的一些边界条件,这道题也是非常简单的,主要思路是:
1.将字符串开头和结尾的多余空格去掉。
2.将字符串从后向前遍历,每遍历出一个完整的单词将其添加到返回的字符串中并添加空格,最后一个单词后面不添加空格。
代码如下:
class Solution {
public String reverseWords(String s) {
int start = 0;
int end = s.length() - 1;
while(s.charAt(start) == ' '){
start++;
}
while(s.charAt(end) == ' '){
end--;
}
StringBuilder str = new StringBuilder(s.substring(start,end + 1));
StringBuilder ss = new StringBuilder();
int i = str.length() - 1;
int j = i;
while(i >= 0){
while(i > 0 && str.charAt(i) != ' '){
i--;
}
if(i == 0){
ss.append(str.substring(i,j + 1));
return ss.toString();
} else {
ss.append(str.substring(i + 1,j + 1));
ss.append(" ");
}
while(i >= 0 && str.charAt(i) == ' '){
i--;
}
j = i;
}
return ss.toString();
}
}
该文章介绍了一个Java方法,用于处理字符串,去除首尾空格并反转单词顺序。代码通过遍历字符串,检查空格和单词边界,使用StringBuilder构建新的字符串。
676

被折叠的 条评论
为什么被折叠?



