描述
将一个字符串中的空格替换成 “%20”。
例子
Input:
"A B"
Output:
"A%20B"
思路
由于要将字符串中所用空格替换为%20,故若字符串含有一个空格,则字符串的总长度会增长2,故可以先遍历一遍字符串,若将字符串的总长度变为相应的长度,需要两个指针,分别指向原字符串长度的最后一个票p1,和新字符串的最后一个p2,若原字符串为字符,则直接赋值给p2;若原字符串为空格,则赋值%20。
代码
public class Question003 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("A B");
int p1 = sb.length()-1;//指向原字符串最后一个
for (int i = 0; i <= p1; i++) {
if(sb.charAt(i) == ' ') {
sb.append(" ");
}
}
int p2 = sb.length()-1;//指向新字符串最后一个
while (p1 >= 0 && p1 < p2) {
if(sb.charAt(p1) != ' ') {
sb.setCharAt(p2--,sb.charAt(p1--));
} else if(sb.charAt(p1--) == ' ') {
sb.setCharAt(p2--, '0');
sb.setCharAt(p2--, '2');
sb.setCharAt(p2--, '%');
}
}
System.out.println(sb);
}
}