。。。剑指Offer之——替换空格。。。

 1 public String replaceSpace(StringBuffer str) {
 2 //        1、如果输入的字符串为空,则返回空字符串,如果返回null,牛客网通不过
 3 //        2、如果输入的字符串的内容为空,则返回空字符串
 4         if (str == null || str.length() == 0) {
 5             return "";
 6         }
 7         int count = 0;//统计空格数目
 8         int length = str.length();
 9 //        循环用来统计空格数目
10         for (int i = 0; i < length; i++) {
11             if (str.charAt(i) == ' ') {
12                 count++;
13             }
14         }
15 //        新的字符个数=原来字符串长度+2倍的空格数目
16         char[] ch = new char[length + 2 * count];
17 //        i表示指向str的指针,j表示指向ch的指针
18         for (int i = 0, j = 0; i < length && j < ch.length; ) {
19 //            如果i指向空格,则把j指向的内容替换为'%','2','0',执行完,j指向下一个
20             if (str.charAt(i) == ' ') {
21                 ch[j++] = '%';
22                 ch[j++] = '2';
23                 ch[j++] = '0';
24             } else {
25 //            如果i指向的不是空格,则把j指向的内容替换为i指向的内容,执行完,j指向下一个
26                 ch[j++] = str.charAt(i);
27             }
28 //            i指向下一个
29             i++;
30         }
31 //        把字符数组转换成字符串
32         return String.valueOf(ch);
33     }
原文地址:https://www.cnblogs.com/yingmeng/p/10767268.html