import java.util.*; public class Solution { public String trans(String s, int n) { // write code here StringBuilder stringBuilder1 = new StringBuilder(); Stack<String> stack = new Stack<>(); char[] c = s.toCharArray(); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < c.length; i++) { if (Character.isLetter(c[i])) { if (Character.isUpperCase(c[i])) { stringBuilder.append((char) (c[i] + 32)); } if (Character.isLowerCase(c[i])) { stringBuilder.append((char) (c[i] - 32)); } } else {//如果不是字母就把拼接好的字符串入stack,且把当前非字母的字符入stack stringBuilder1.insert(0, stringBuilder.toString()); // stack.push(stringBuilder.toString()); // stack.push("" + c[i]); stringBuilder1.insert(0, c[i] + ""); stringBuilder.delete(0, stringBuilder.length()); } //单独处理边界情况,否则会丢失最后一个字符串 if (i == (c.length - 1)) { stringBuilder1.insert(0, stringBuilder.toString()); // stack.push(stringBuilder.toString()); } } // String res = ""; // while (!stack.isEmpty()) { // res += stack.pop(); // } return stringBuilder1.toString(); } }