题目描述

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

代码:

  1. 蠢方法,直接使用StringBuilder 遍历遇到空格,直接append %20 ,遍历结束,即完成
  1. public class Solution {
  2. public String replaceSpace(StringBuffer str) {
  3. StringBuilder sb = new StringBuilder();
  4. for (int i = 0; i < str.length(); i++) {
  5. if (str.charAt(i) == ' ') {
  6. sb.append("%20");
  7. } else {
  8. sb.append(str.charAt(i));
  9. }
  10. }
  11. return new String(sb);
  12. }
  13. }

代码

  1. 先判断出字符串中有多少空格,构造新字符串
  1. string replaceSpace(string s) {
  2. int count = 0, len = s.size();
  3. for (char c : s) {
  4. if (c == ' ') {
  5. count += 1;
  6. }
  7. }
  8. s.resize(len + 2 * count);
  9. for (int i = len - 1, j = s.size() - 1; i < j; i--, j--) {
  10. if (s[i] != ' ') {
  11. s[j] = s[i];
  12. } else {
  13. s[j] = '0';
  14. s[j - 1] = '2';
  15. s[j - 2] = '%';
  16. j -= 2;
  17. }
  18. }
  19. return s;
  20. }