空格分割

public class Solution {
    public String ReverseSentence(String str) {
        if(str==null||str.equals(""))
            return str;

        //疑惑 不知道为什么str.equals(" ")通不过测试用例
//今天又看到这个题了 突然get到如果有一堆空格就不行。
        String[] strs=str.split(" ");
        if(strs.length<=1)
            return str;
        int l=0,r=strs.length-1;
        while(l<r){
            String s=strs[l];
            strs[l]=strs[r];
            strs[r]=s;
            l++;
            r--;
        }
        String res="";
        for(int i=0;i<strs.length-1;i++)
            res+=strs[i]+" ";
        res+=strs[strs.length-1];
        return res;


    }
}
/*
//滑动窗口思想
 public String ReverseSentence(String str) { 
        if (str == null || str.trim().length() == 0) return str;
        char[] chars = str.toCharArray();
        reverseChars(chars, 0, str.length() - 1);
        // 利用滑动窗口
        // 遇到' '执行翻转
        int l = 0;
        int r = 0;
        while (l < str.length()) {
            if (chars[r] == ' ') {
                reverseChars(chars, l, r - 1);
                // 交换完之后,一起跳过' '
                r++;
                l = r;
            }
            if (r == str.length() - 1) {
                reverseChars(chars, l, r);
                // 到了最后交换玩就break,否则r会出现越界,可以在while中加对r的判断
                break;
            }
            r++;
        }
        return String.valueOf(chars);
    }
    private void reverseChars(char[] chars, int l, int r) {
        while (l < r) {
            char temp = chars[l];
            chars[l] = chars[r];
            chars[r] = temp;
            l++;
            r--;
        }
    }
    */