import java.util.Arrays;
/**
* 面试题5:替换空格
* 实现一个函数,把字符串中的每一个空格替换成“%20”。
* 例如,输入“We are happy”,输出"We%20are%20happy"
*/
public class No5 {
public static void main(String[] args) {
//测试用例构建
//1、输入包含空格(空格位于字符串的最前边,最后边,中间,连续多个空格)
//2、输入不含空格
//3、输入为空,输入只有一个空格
String test1 = "Hello World";
String test2 = " Hello World ";
String test3 = " ";
String test4 = "";
String test5 = "Hello World";
System.out.println(methord2(test5));
}
//字符数组
public static String methord1(String inputString){
if(inputString==null){
return null;
}
int count = 0;
for(char c:inputString.toCharArray()){
if(' '==c){
count++;
}
}
char[] result = new char[inputString.length()+2*count];
int i = 0;
for(char c: inputString.toCharArray()){
if(c==' '){
result[i] = '%';
result[i+1] = '2';
result[i+2] = '0';
i+=3;
}else{
result[i] = c;
i++;
}
}
return new String(result);
}
//StringBuilder
public static String methord2(String inputString){
if(inputString==null){
return null;
}
StringBuilder result = new StringBuilder();
for(char c: inputString.toCharArray()){
if(c==' '){
result.append("%20");
}else{
result.append(c);
}
}
return result.toString();
}
}