描述:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
实现:
package com.ma.offer;
public class Demo02 {
/**
* 请实现一个函数,将一个字符串中的每个空格替换成“%20”。
* 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
*/
public static String replaceSpace(StringBuffer str) {
if (str != null && str.length() > 0) {
char[] old = new char[str.length()];
for (int i = 0; i < str.length(); i++) {
old[i] = str.charAt(i);
}
int num = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
num++;
}
}
char[] chars = new char[str.length() + num * 2];
int m = str.length() - 1;
int n = str.length() + num * 2 -1;
while (m >= 0 && n >= 0) {
if (str.charAt(m) == ' ') {
chars[n--] = '0';
chars[n--] = '2';
chars[n--] = '%';
} else {
chars[n--] = old[m];
}
m--;
}
return new String(chars);
}
return null;
}
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("we a r e happy");
System.out.println(replaceSpace(stringBuffer));
}
}