题目:

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

思路

遍历字符串,遇到空格即替换为%20

java程序

/*

问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换!

问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。

从前往后替换,后面的字符要不断往后移动,要多次移动,所以效率低下

从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次,这样效率更高一点。

*/

public class Solution {

public String replaceSpace(StringBuffer str) {

int spaceNum=0;//计算空格数目

for(int i=0;i

if(str.charAt(i)==' ')

spaceNum++;

}

int indexOld=str.length()-1;//替换前str下标

int newLength=str.length()+spaceNum*2;//计算把空格都替换为%20后的str长度

int indexNew=newLength-1;//替换后str下标

str.setLength(newLength);//防止下标越界,将str长度变更为替换后的长度

for(;indexOld>=0&&indexOld

if(str.charAt(indexOld)==' '){

str.setCharAt(indexNew--,'0');

str.setCharAt(indexNew--,'2');

str.setCharAt(indexNew--,'%');

}else{

str.setCharAt(indexNew--,str.charAt(indexOld));

}

}

return str.toString();

}

}

java replace替换空格_替换空格-java相关推荐

  1. java 极客漫画_漫画:Java如何实现热更新?

    Arthas(阿尔萨斯)是 Alibaba 开源的一款 Java 诊断工具,使用它我们可以监控和排查 Java 程序,然而它还提供了非常实用的 Java 热更新功能. 所谓的 Java 热更新是指在不 ...

  2. Java基础知识体系_计算机与java

    Java基础知识体系 (一).计算机与java (二).变量与类型 (三).运算符 (四).流程控制 (五).数组 (一).计算机与java 1,计算机:硬件+软件 硬件:客观存在的各种计算机相关设备 ...

  3. java获取机器号_(转)JAVA获得机器码的实现

    http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码  收藏代码 /** *生成机 ...

  4. 新手学java 学哪方面_初学者学Java应从哪些方面学习?

    原标题:初学者学Java应从哪些方面学习? Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.那么,初学者学Java应从哪些方面学 ...

  5. java 反射 动态编译_动态编译java源代码和反射调用问题

    我从教程中得到了以下代码: package com.tom.labs; import java.io.IOException; import java.lang.reflect.Method; imp ...

  6. java.sql在哪_我的Java访问MS SQL的程序错在哪了?谢谢!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我用的开发工具是Jbuilder2006, MS SQL SERVER 2000. 源程序是: package data; import java.*; ...

  7. java hdfs创建文件_使用HDFS java api 创建文件出错。

    //创建文件核心代码 public static void createNewHDFSFile(String toCreateFilePath, String content) throws IOEx ...

  8. java hdfs 新建目录_如何用java在hdfs中创建一个新目录?

    public static void main(String[] args) throws IOException, URISyntaxException { ????????????配置config ...

  9. java 内部类 加载_举例讲解Java的内部类与类的加载器

    内部类 class A { //Inner1 要在 A 初始化后 才能使用,即要被A的对象所调用 class Inner1 { int k = 0; // static int j = 0; //A加 ...

最新文章

  1. 云南大学信息学院c语言实验七,云南大学软件学院C语言程序
  2. 理论优美的深度信念网络,Hinton老爷子北大最新演讲
  3. Linux安装卸载mysql
  4. Redis数据库如何实现读写分离
  5. 网络基础知识-TCP/IP协议各层详解
  6. navicat er图没有连线_迁徙图?流向图?城市关系强度图?
  7. (转) Dockerfile 中的 COPY 与 ADD 命令
  8. MAC电脑安装window系统(一):双系统安装方法
  9. Win10下安装GrADS
  10. android手机内存单位 吉字节,Android8.1 吉字节问题
  11. 鹅厂假前端实习鹅的实习日志
  12. shell 下 时间 的傻狍子
  13. 自定义AXI外设IP核实现流水灯
  14. oracle 客户端的安装失败,关于安装oracle 11g client 出现安装先决条件检查全部失败...
  15. android windows 共享文件,安卓手机如何访问电脑局域网共享的文件
  16. Android patchrom 流程详解
  17. 德勤加拿大:在Flow链上创建NFT所消耗的能量比人们搜索或发布一个帖子还少
  18. 基于SPSS Moderler和R语言的数据挖掘宽表处理
  19. python 两个等长list的各对应位置元素相加+两个字典相加,相同键元素累加,不同键元素取全集
  20. 也许你会用到的58个硬件面试题!

热门文章

  1. CentOS 7 U盘安装
  2. libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置
  3. Python判断字符串是否全是数字或者字母
  4. 计算机键盘键盘一个按键坏了,笔记本的一个按键坏掉了怎么办
  5. java option请求_面试官:说说你对 options 请求的理解
  6. 易优cms传奇竞技游戏公司网站模板源码
  7. 当事与愿违的时候,选择自己心中所想
  8. 图文详解谷歌Android 7.0的20个新功能
  9. Python初学者练习题(2)
  10. 16WiFi为用户投保1000万元“公交WiFi安全责任险”