408,剑指 Offer-替换空格

408,剑指 Offer-替换空格

Every strike brings me closer to the next home run. 

每一次挥棒落空都让我更接近下一个全垒打。

问题描述

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

 

示例 1:

输入:s = "We are happy."

输出:"We%20are%20happy."

 

限制:

0 <= s 的长度 <= 10000

 

先把字符串转换为单个字符

这里让求的是把字符串中的空格替换成%20,其中一种实现方式就是申请一个临时数组,然后再遍历这个字符串的每个字符,如果不是空格就把遍历的字符添加到临时数组中,如果是空格就添加3个字符'%','2','0'分别到临时数组中,最后再把临时数组转化为字符串即可。

 

 1public String replaceSpace(String s) {
2    int length = s.length();
3    char[] array = new char[length * 3];
4    int index = 0;
5    for (int i = 0; i < length; i++) {
6        char c = s.charAt(i);
7        if (c == ' ') {
8            array[index++] = '%';
9            array[index++] = '2';
10            array[index++] = '0';
11        } else {
12            array[index++] = c;
13        }
14    }
15    String newStr = new String(array, 0, index);
16    return newStr;
17}

 

使用StringBuilder

还有一种方式和上面差不多,就是把字符串中的每个字符一个个添加到StringBuilder中,如果遇到空格就把他换成%20。

 1public String replaceSpace(String s) {
2    StringBuilder stringBuilder = new StringBuilder();
3    for (int i = 0; i < s.length(); i++) {
4        if (s.charAt(i) == ' ')
5            stringBuilder.append("%20");
6        else
7            stringBuilder.append(s.charAt(i));
8    }
9    return stringBuilder.toString();
10}

 

如果还想要更简单的,直接调用API,一行代码搞定

1public String replaceSpace(String s) {
2    return s.replace(" ", "%20");
3}

 

总结

这题应该是非常简单的一道题了,没什么好说的。

 

 

408,剑指 Offer-替换空格

406,剑指 Offer-二维数组中的查找

404,剑指 Offer-数组中重复的数字

 

 

408,剑指 Offer-替换空格

长按上图,识别图中二维码之后即可关注。

 

如果喜欢这篇文章就点个"赞"吧

 

上一篇:考研计算机专业复试问题汇总——计算机网络(王道408)


下一篇:2018-408-选择题-进程调度-解析