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 sb = new StringBuilder();
        /**
在Java中,split()方法用于将字符串拆分为子字符串数组,其中第一个参数是要用作分隔符的正则表达式,
第二个参数是用于限制拆分后的子字符串数量的整数值。当第二个参数为正数时,它表示最多返回的子字符串数量;
当为负数时,例如-1,它表示不限制返回的子字符串数量,即将字符串全部拆分。在这种情况下,
即使字符串末尾有连续的分隔符,也会保留空字符串作为子字符串。
         */
        String[] arr = s.split(" ", -1);
        Stack<String> st = new Stack<>();
        for (String x : arr) {
            st.push(x);
        }
        while (!st.isEmpty()) {
            String x = st.pop();
            for (char c : x.toCharArray()) {
                if (Character.isLowerCase(c)) {
                    sb.append(Character.toUpperCase(c));
                }
                if (Character.isUpperCase(c)) {
                    sb.append(Character.toLowerCase(c));
                }
            }
            sb.append(" ");
        }
        sb.deleteCharAt(sb.length() - 1);
        return sb.toString();
    }
}

使用split方法,注意第二个参数的使用。