题目:

请实现一个函数,将一个字符串中的空格替换成“%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. Apache 2.4配置反向代理
  2. 对互联网中常见地图的坐标系探讨
  3. 当深度学习遇上图: 图神经网络的兴起!
  4. php 弹出下载,php文件下载,不弹出下载框怎么破
  5. 2022年IT热门能力
  6. 13个大数据应用案例,告诉你最真实的大数据故事
  7. 蓝牙调试工具如何使用_更新:使用此有价值的工具改进您的蓝牙项目
  8. python 图片文字转换成word_如何把图片文字转换成word文字?
  9. 2016.12.30非线性优化计算方法1
  10. Zynq UltraScale+ MPSoC配置DDR4参数
  11. 深入分析 Spring 基于注解的 AOP 实现原理
  12. 微信原生组件|基于小程序实现音视频通话
  13. thinkpad t480 简介文章
  14. 未能找到下列包文件: C:\Users\Administrator\Desktop\DotNetFX40\dotNetFx40LP_Full_x86_x64zh-Hans.exe
  15. 【复杂网络】网络级联模型
  16. 什么才是市场急需的前端工程师?【零基础web前端入门视频教程】
  17. hibernate QBC和QBE精讲与案列分析(中)
  18. C语言typedef函数指针用法
  19. 【洛谷题解】P5734 【深基6.例6】文字处理软件(C语言)
  20. PCA:从入门到入土到入神

热门文章

  1. 如何在阿里云服务器(centos7)安装、卸载mysql数据库
  2. 浏览器title中加图标
  3. Android NFC标签 开发深度解析 触碰的艺术
  4. 无法上网dns转发_从DoH到ODoH,运营商再也不能搞DNS劫持了
  5. 文件夹中不显示SolidWorks缩略图的解决办法
  6. 华为手机备忘录编辑内容误删一段文字怎么恢复
  7. 财经计算机财务函数,19个常用财务Excel函数公式,轻松搞定一半的工作,值得收藏...
  8. Redis为什么是单线程、及高并发快的大原因详解
  9. C#编写的一款读取xml文件的mapping图软件。 可以自由定位位置,统计数量,蛇形走位
  10. 微信小程序出现400或者403错误。