import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param n int整型
* @return string字符串
*/
public String trans (String s, int n) {
// write code here
// 1.先大小写反转
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] >= 'a' && chars[i] <= 'z') {
// 转大写
chars[i] = (char) ('A' + (chars[i] - 'a'));
} else if (chars[i] >= 'A' && chars[i] <= 'Z') {
// 转小写
chars[i] = (char) ('a' + (chars[i] - 'A'));
}
}
String convert = new String(chars);
// 2.再整体反转
// 字符串的拼接(add)、反转(reverse)、按索引替换(replace),推荐使用StringBuilder。
StringBuilder reverse = new StringBuilder(convert);
reverse.reverse();
// 3.最后局部反转
for (int i = 0; i < reverse.length(); i++) {
if (reverse.charAt(i) != ' ') {
// 当前字符非空格
int j = i + 1;
while (j < reverse.length() && reverse.charAt(j) != ' ') {
// 若j未出界且j非空格,则不断往后移动j
j++;
}
// 此时j移动到空格或j已经出界,可作为String类的subString方法和StringBuilder的replace方法的第二个索引参数
StringBuilder sub = new StringBuilder(reverse.substring(i, j));
reverse.replace(i, j, sub.reverse().toString());
// 将j赋给i,检测下一个非空格区间
i = j;
}
}
return reverse.toString();
}
}