题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解题思路

题目意思很明显,将字符串的空格替换成“%20”,因为 Java 对于 String 提供了 replace 函数,所以将 StringBuffer 转换为 String 类型再调用对应的 replaceAll 就可以很好的解决这个问题。
当然在这里提供另一种普通的做法,因为提供的参数是 StringBuffer 类型,很明显我们可以利用它的 append 方法,我们遍历一遍 str,如果不是空格就 append 对应的字符到 ans 中,否则就append “%20”,最后转化为 String 类型返回出去即可。

代码实现

  1. import java.util.Scanner;
  2. public class Problem2 {
  3. public static String replaceSpace(StringBuffer str) {
  4. String ans = str.toString().replaceAll(" ", "%20");
  5. return ans;
  6. }
  7. public static String replaceSpace2(StringBuffer str) {
  8. int len = str.length();
  9. StringBuffer ans = new StringBuffer();
  10. for (int i = 0; i < len; i ++) {
  11. if (str.charAt(i) == ' ') {
  12. ans.append("%20");
  13. } else {
  14. ans.append(str.charAt(i));
  15. }
  16. }
  17. return ans.toString();
  18. }
  19. public static void main(String[] args) {
  20. Scanner cin = new Scanner(System.in);
  21. String s = cin.nextLine();
  22. StringBuffer str = new StringBuffer(s);
  23. String ans = replaceSpace(str);
  24. System.out.println(ans);
  25. }
  26. }