首页 > 试题广场 >

替换空格

[编程题]替换空格
  • 热度指数:152507 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

数据范围:。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。

示例1

输入

"We Are Happy"

输出

"We%20Are%20Happy"
示例2

输入

" "

输出

"%20"
推荐
使用JavaScript实现:
方法一:暴力破解
function replaceSpace( s ) {
    let result = '';
    for(let i = 0;i < s.length;i++) {
        if(s[i] === ' ') {
            result += '%20';
        } else {
            result += s[i];
        }
    }
    return result;
}
方法二:使用字符串的replace方法,将正则对象作为参数传入replace方法
function replaceSpace( s ) {
    let regx = new RegExp(' ','g');
    return s.replace(regx,'%20');
}
方法三:将字符串以空格作为分隔符使用split()转成数组,然后对数组使用join()方法
function replaceSpace( s ) {
    return s.split(' ').join('%20');
}
方法四:将字符串使用扩展运算符转成数组,然后使用数组的map方法
function replaceSpace( s ) {
    let arr = [...s].map(item => {
        return item === ' ' ? '%20' : item;
    });
    return arr.join('');
}
编辑于 2021-07-06 10:36:50 回复(4)
    public String replaceSpace (String s) {
        return s.replace(" ", "%20");
    }
发表于 2024-08-11 15:07:35 回复(0)
用replace函数,第一个参数,原字符,第二个参数,新字符,直接替换
 public String replaceSpace (String s) {
        // write code here
            String str = s.replace(" ","%20");
        return str;

    }


    }
发表于 2023-09-18 20:50:39 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    public String replaceSpace (String s) {
        // write code here
        return s.replaceAll(" ","%20");
    }
}

发表于 2023-06-14 09:54:22 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    public String replaceSpace (String s) {
        // write code here
        return s.replace(" ","%20");        
    }
}


发表于 2023-01-16 16:07:16 回复(0)
    public String replaceSpace (String s) {
        // write code here
        String[] split = s.split("");
        String s2 = "";
        for (String str : split) {
            if (str.equals(" ")) {
                str = "%20";
            }
            s2 += str;
        }
        return s2;
    }
方法很多,直接拼接也是可以的

发表于 2022-11-26 22:59:02 回复(0)
对于java而言,由于string是不可变的,必须要新建一个对象,所以整花里胡哨的从后往前也没用:
```java
public String replaceSpace(String s) { // calculate space's number  int space_number = 0;  for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ' ') {
            space_number++;  }
    } char[] res = new char[s.length() + space_number * 2];  int res_cur_loc = 0;  for (int i = 0; i < s.length(); i++) { if(s.charAt(i) == ' ') {
            res[res_cur_loc++] = '%';  res[res_cur_loc++] = '2';  res[res_cur_loc++] = '0';  } else {
            res[res_cur_loc++] = s.charAt(i);  }
    } return new String(res); }

```
发表于 2022-10-31 19:46:17 回复(0)
return s.replace(" ","%20");

发表于 2022-09-18 22:59:42 回复(0)
s.replaceAll(" ","%20");
发表于 2022-09-15 16:35:53 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    public String replaceSpace (String s) {
        // write code here
        String result = s.replaceAll(" ","%20");
        return result;
    }
}


发表于 2022-09-08 17:41:02 回复(0)
public class Solution {
    public String replaceSpace (String s) {
        String ret = s.replaceAll(" ","%20");
        return ret;
    }
}

发表于 2022-09-04 13:49:47 回复(0)
    public String replaceSpace(String s) {
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == ' ')
                stringBuilder.append("%20");
            else
                stringBuilder.append(s.charAt(i));
        }
        return stringBuilder.toString();
    }

发表于 2022-08-31 20:41:37 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    public String replaceSpace (String s) {
        // write code here
        return s.replaceAll(" ","%20");
    }
}

发表于 2022-08-24 17:16:53 回复(0)
s.replaceAll("\\s", "%20");

发表于 2022-06-30 20:12:24 回复(1)
一行代码搞定...
return s.replaceAll(" ","%20");
发表于 2022-05-20 11:48:31 回复(0)
public String replaceSpace (String s) {
        StringBuilder buff = new StringBuilder(s);
        for (int i = 0; i < buff.length(); i++) {
            if (buff.charAt(i) == ' ') {
                buff.replace(i, i + 1, "%20");
            }
        }
        return buff.toString();
        
    }

发表于 2022-04-09 12:03:26 回复(0)
import java.util.*;
public class Solution {
    public String replaceSpace (String s) {
        String str = "";
        for (int i = 0; i < s.length(); i++) {
            String str2 = s.substring(i,i+1);
            if (str2.equals(" ")) {
                str2 = "%20";
                str += str2;
            } else {
                str += str2;
            }
        }
        return str;
    }
}

发表于 2022-04-01 22:38:47 回复(2)
 public String replaceSpace (String s) {
        // write code here
        return s.replaceAll(" ","%20");
    }
发表于 2022-03-03 17:05:31 回复(1)