(字符串)01-字符串变形

 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 }

 

posted @ 2023-11-22 23:03  StringBuilder  阅读(17)  评论(0编辑  收藏  举报