题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路
题目意思很明显,将字符串的空格替换成“%20”,因为 Java 对于 String 提供了 replace 函数,所以将 StringBuffer 转换为 String 类型再调用对应的 replaceAll 就可以很好的解决这个问题。
当然在这里提供另一种普通的做法,因为提供的参数是 StringBuffer 类型,很明显我们可以利用它的 append 方法,我们遍历一遍 str,如果不是空格就 append 对应的字符到 ans 中,否则就append “%20”,最后转化为 String 类型返回出去即可。
代码实现
import java.util.Scanner;
public class Problem2 {
public static String replaceSpace(StringBuffer str) {
String ans = str.toString().replaceAll(" ", "%20");
return ans;
}
public static String replaceSpace2(StringBuffer str) {
int len = str.length();
StringBuffer ans = new StringBuffer();
for (int i = 0; i < len; i ++) {
if (str.charAt(i) == ' ') {
ans.append("%20");
} else {
ans.append(str.charAt(i));
}
}
return ans.toString();
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String s = cin.nextLine();
StringBuffer str = new StringBuffer(s);
String ans = replaceSpace(str);
System.out.println(ans);
}
}