描述:
請實現一個函數,將一個字符串中的每個空格替換成“%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));
}
}