/*
* 请实现一个函数,将一个字符串中的空格替换成“%20”。
* 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
*/
public class ReplaceSpace {
public String replaceSpace(StringBuffer str) {
if(str == null)
return new String();
for(int i = 0;i < str.length(); i ++) {
char c = str.charAt(i); //取出索引位置的字符
if((c + "").equals(" ")) { //判断字符是否为空格,如果为空格,就把当前位置字符替换并在之后插入字符,同时更新长度
str.setCharAt(i, '%');
str.insert(i + 1, '2');
str.insert(i + 2, '0');
}
}
return str.toString();
}
public String replaceSpace2(StringBuffer str) {
if(str == null)
return new String();
int length = str.length();
for(int i = 0;i < length; i ++) {
char c = str.charAt(i); //取出索引位置的字符
if(Character.isSpaceChar(c)) { //判断字符是否为空格的法二
str.setCharAt(i, '%');
str.insert(i + 1, '2');
str.insert(i + 2, '0');
}
length = str.length();
}
return str.toString();
}
public String replaceSpace3(StringBuffer str) {
if(str == null)
return new String();
int length = str.length();
StringBuffer sb = new StringBuffer(); //新建一个可变字符串
for(int i = 0;i < length; i ++) {
char c = str.charAt(i); //取出索引位置的字符
if(c == ' ') { //判断字符是否为空格的法二
sb.append("%20");
}
else {
sb.append(str.charAt(i));
}
}
return sb.toString();
}
public static void main(String args[]) {
StringBuffer str = new StringBuffer("we are family");
//StringBuffer temp = null;
String str2 = new ReplaceSpace().replaceSpace2(str);
System.out.println(str2);
}
}