151. 翻转字符串里的单词 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/reverse-words-in-a-string/这个题涉及到很多字符串的操作,偷个懒,就先用String.trim()方法去掉前后的空格,中间的多余空格还是需要自己考虑。设置一个标志 firstBlank 表示是否为连续的第一个空格,如果为true就append进去,否则就跳过。
class Solution {
public String reverseWords(String s) {
s = s.trim();
StringBuilder sb = new StringBuilder();
boolean firstBlank = true;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != ' ') {
firstBlank = true;
sb.append(s.charAt(i));
} else {
if (firstBlank) {
sb.append(s.charAt(i));
firstBlank = false;
}
}
}
String[] words = new String(sb).split(" ");
StringBuilder res = new StringBuilder();
for(int i=words.length-1;i>=0;i--){
res.append(words[i]);
res.append(' ');
}
res.delete(res.length()-1,res.length());//删掉多余空格
return new String(res);
}
}