import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @param n int整型 
     * @return string字符串
     */
    public String trans (String s, int n) {
        // write code here
        StringBuilder reverse = new StringBuilder();

        int j;
        int i = j = n - 1;
        while (i >= 0) {
            while (i >= 0 && s.charAt(i) != ' ') {
                i --;
                continue;
            }
            int start = i + 1;
            for (; start <= j; start ++ ) {
                char c = s.charAt(start);
                if (c >= 'A' && c <= 'Z') c += ('a' - 'A');
                else if (c >= 'a' && c <= 'z') c -= ('a' - 'A');
                reverse.append(c);
            }
            if (i != -1) reverse.append(' ');
            
            i --;
            j = i;
        }


        return reverse.toString();
    }
}
while(i >= 0)
这种类型的判断不能随意写,要根据最边界的范围,可以用极限来考虑,也可以正常算,i = -1的时候,肯定是最左边第一个字符,所以i >= 0