剑指offer(Java版)第三题:请实现一个函数,把字符串中的每个空格替换成"%20"。 例如输入“We are happy.”,则输出“We%20are%20happy.”。

/*
请实现一个函数,把字符串中的每个空格替换成"%20"。
例如输入“We are happy.”,则输出“We%20are%20happy.”。
*/

import java.util.*;
import java.lang.*;

public class Class4 {

static class replaceBlank{
public String replaceBlank(StringBuffer a){
if(a == null){
System.out.println("输入的字符串为空!");
return null;
}
int newLength = a.length();
int originLength = a.length() - 1;
int count = 0;
for(int i = 0; i < a.length(); i++){
if(a.charAt(i) == ' '){
count++;
newLength += 2;
}
}
a.setLength(newLength);
if(count == 0){
System.out.println("输入的字符串不包括空格!");
return "Worry";
}
newLength = newLength - 1;
while(newLength > originLength){
if(a.charAt(originLength) != ' '){
a.setCharAt(newLength--, a.charAt(originLength));
}else if(a.charAt(originLength) == ' '){
a.setCharAt(newLength--, '0');
a.setCharAt(newLength--, '2');
a.setCharAt(newLength--, '%');
}
originLength--;
}
return a.toString();
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("输入原始字符串!");
StringBuffer s1 = new StringBuffer("We are happy");
System.out.println(s1.toString());
replaceBlank rb = new replaceBlank();
String r = rb.replaceBlank(s1);
System.out.println("输出替换后的字符串!");
System.out.println(r);

}

}

posted on 2020-02-27 13:25  桌子哥  阅读(403)  评论(0编辑  收藏  举报