(字符串)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 }