![]()
1 import java.util.*;
2
3 public class Solution {
4 /**
5 * @param s string字符串
6 * @param n int整型
7 * @return string字符串
8 */
9 public String trans (String s, int n) {
10 // 校验字符串长度
11 if(n == 0) {
12 return s;
13 }
14 // 初始返回结果
15 StringBuffer result = new StringBuffer();
16 // 大小写转换
17 for(int i = 0; i < n; i++){
18 if(s.charAt(i) <= 'Z' && s.charAt(i) >= 'A') {
19 // 大写转成小写
20 result.append((char)(s.charAt(i) - 'A' + 'a'));
21 } else if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z') {
22 // 小写转成大写
23 result.append((char)(s.charAt(i) - 'a' + 'A'));
24 } else {
25 // 空格直接复制
26 result.append(s.charAt(i));
27 }
28 }
29 // 翻转整个字符串
30 result = result.reverse();
31 // 以空格为界二次翻转
32 for (int i = 0; i < n; i++){
33 // 确认单词的尾部序号
34 int j = i;
35 while(j < n && result.charAt(j) != ' ') {
36 j++;
37 }
38 // 字符串中截取出空格之间的单词
39 String word = result.substring(i,j);
40 StringBuffer buffer = new StringBuffer(word);
41 // 反转单词
42 word = buffer.reverse().toString();
43 // 将单词替换为反转后的结果
44 result.replace(i, j , word);
45 // 更新单词的起始序号
46 i = j;
47 }
48 // 返回结果
49 return result.toString();
50 }
51 }