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 }