问题:替换空格

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

示例 1

输入:s = “We are happy.”
输出:“We%20are%20happy.”

限制:

0 <= s 的长度 <= 10000

Java StringBuffer 和 StringBuilder 类

  • 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类,和 String类不同的是,StringBuffer 和StringBuilder 类的对象能够被多次的修改,并且它不产生新的未使用对象。由于 StringBuilder相较于 StringBuffer
    有速度优势,所以多数情况下建议使用 StringBuilder类,然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

解题思路:

  • 1.利用StringBuilder(速度快)借助字符数组,首先将字符串通过s.toCharArray()方法转为字符数组,之后对字符数组中的每个字符进行判断,当字符为空时,将’%20’字符串append到StringBuilder中,否则将原字符append到StringBuilder中,最后利用toString方法返回此序列中数据的字符串表示形式。

  • 2.利用辅助字符数组(内存消耗小),首先定义一个长度为字符串长度3倍的字符数组,之后遍历字符串中0 到 length() - 1索引处的字符(利用charAt() 方法),接着判断字符是否为空,空的情况,依次将 %、2、0 三个字符存入字符数组,否则,将原字符存入字符数组,最后将字符数组转为字符串返回。

实现代码:

class Solution{//方法一public String replaceSpace(String s) {StringBuilder res = new StringBuilder();for (Character c : s.toCharArray()) {if (c == ' ') {res.append("%20");} else {res.append(c);}}return res.toString();}//方法二public String replaceSpace2(String s) {int n = s.length();char[] array = new char[3 * n];int size = 0;for (int i = 0; i < n; i++) {char c = s.charAt(i);if (c == ' ') {array[size++] = '%';array[size++] = '2';array[size++] = '0';} else {array[size++] = c;}}String s1 = new String(array, 0, size);return s1;}
}

替换空格---StringBuilder相关推荐

  1. [剑指offer][JAVA]面试题第[05]题[替换空格][StringBuilder/Buffer]

    [问题描述][简单] 请实现一个函数,把字符串 s 中的每个空格替换成"%20".示例 1:输入:s = "We are happy." 输出:"We ...

  2. 《LeetCode力扣练习》剑指 Offer 05. 替换空格 Java

    <LeetCode力扣练习>剑指 Offer 05. 替换空格 Java 一.资源 题目: 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输 ...

  3. 剑指offer:替换空格

    替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We%20a ...

  4. 怎么把数字替换成空格_剑指offer04:替换空格

    ❝ 你自己的代码如果超过6个月不看,再看的时候也一样像是别人写的.-- 小浩 ❞ 替换空格 题目描述 请实现一个函数,将一个字符串中的每个空格替换成 %20.例如,当字符串为 We Are Happy ...

  5. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  6. 剑指offer刷题(java)|二维数组中的查找|替换空格|leetcode刷题

    文章目录 前言 一.二维数组中的查找 题目 题解一 题解二 题解三 二.替换空格 题目 题解一 题解二 题解三 前言 本文主要是写了我做算法题的思路以及对其他优秀题解的自我理解. 一.二维数组中的查找 ...

  7. [剑指offer]面试题第[2]题[JAVA][替换空格][函数][字符串]

    [问题描述] 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. [解答 ...

  8. ~4.1 剑指 Offer 05. 替换空格

    剑指 Offer 05. 替换空格 题目描述 思路 源代码 题目描述 思路 C++: 在 C++ 语言中, string 被设计成「可变」的类型,因此可以在不新建字符串的情况下实现原地修改. 思路: ...

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

    1. 题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. ① ...

最新文章

  1. WMI技术介绍和应用——Event Consumer Provider
  2. 基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案...
  3. 用 Flask 来写个轻博客 (25) — 使用 Flask-Principal 实现角色权限功能
  4. 小店怎么做内容营销?这个家居店铺有诀窍
  5. 使用OpenSSL加密,使用Java解密,使​​用OpenSSL RSA公钥
  6. python图像锐化_Python图像处理介绍--图像模糊与锐化
  7. 前端学习(2461):打包发布
  8. java栈的应用_Java堆栈应用程序
  9. 替代传统按键方案 单通道感应TTP223E-BA6 TTP223E-CA6 TTP223E-HA6 单按键触摸检测IC
  10. 数学建模:人口增长模型
  11. Verilog 层次化文件设计——彩灯控制器
  12. C#爬取数据_详细篇
  13. Python语言程序设计课程论文
  14. mysql之my.cnf
  15. 【OpenCV 例程200篇】20. 图像的按位运算(cv2.bitwise)
  16. 漫画 | 程序员大战公务员!到底谁猛?
  17. Pandas函数read_csv的参数na_values的用法
  18. C#扩展(2):Random的扩展
  19. go show 和 no show问题
  20. 分类时为什么都选择one hot编码

热门文章

  1. 手机屏幕的物理分辨率和逻辑分辨率
  2. 微服务 Rpc和Rest协议
  3. Linux Bash小结1
  4. 关于Unity中自带摇杆与车轮碰撞器的使用
  5. 【紧急】支付宝全面停止微信合作
  6. 微软已经宣布自2009年4月14日起放弃对windows xp的主流支持
  7. Oracle 10g 中通过DBLink访问MySQL数据库
  8. 淘宝、美团、滴滴分别如何搭建大数据平台?
  9. 文末惊喜福利 | 盘点2021主流架构创新实践
  10. 某年轻程序员吐槽大龄程序员“太水”:技术水平低,经验都过时,看不起新人,不服从管理!...