package cn.com.cnn;
public class Replace {
public String replaceMethod(String oldStr) {
String newStr = oldStr.replace(" ", "%20");
return newStr;
}
public String replaceMyMethod(StringBuffer oldStr) {
int newStrLength = 0;
int oldStrLength = 0;
int spaceNumber = 0;
StringBuffer newStr = new StringBuffer();
System.out.println(newStr);
for(int i = 0; i < oldStr.length(); i++) {
oldStrLength++;
newStr.append(" ");
if(oldStr.charAt(i) == ' ') {
spaceNumber++;
newStr.append(" ");
}
}
newStrLength = oldStrLength + 2 * spaceNumber;
int indexOfOldStr = oldStrLength - 1;
int indexOfNewStr = newStrLength - 1;
for(int j = oldStrLength - 1; j >= 0; j--) {
if(oldStr.charAt(j) != ' ') {
newStr.setCharAt(indexOfNewStr--, oldStr.charAt(indexOfOldStr));
} else {
newStr.setCharAt(indexOfNewStr--, '0');
newStr.setCharAt(indexOfNewStr--, '2');
newStr.setCharAt(indexOfNewStr--, '%');
}
indexOfOldStr--;
}
return newStr.toString();
}
public static void main(String[] args) {
String testString = "we are family";
StringBuffer stringBuffer = new StringBuffer(testString);
Replace replace = new Replace();
System.out.println(replace.replaceMethod(testString));
System.out.println(replace.replaceMyMethod(stringBuffer));
}
}