Java 替换空格
题目描述
解一:
由于最近在学习Head First Java,所以最先考虑到的就是使用字符串拼凑,思路很简单,没有考虑什么时间复杂度,直接看代码。
public class Solution {
public String replaceSpace(StringBuffer str) {
String str1=str.toString();
char[] charArray = str1.toCharArray();
StringBuilder sBuilder = new StringBuilder();
for (char c : charArray) {
if(c==' ') {
sBuilder.append("%20");
}else {
sBuilder.append(c);
}
}
String string = sBuilder.toString();
return string;
}
}
解二:这个方法是借鉴网上别人的思路,自己理解了然后实现出来了。
思路:从字符串的后面开始复制和替换,首先准备两个指针,p1和p2,p1指向原始字符串的末尾,p2指向替换后字符串的末尾,接下来,向前移动指针p1,逐个把它指向的字符复制到p2,碰到一个空格之后,把p1向前移动1格,在p2处插入字符串“20%”,由于“20%”长度为3,同时也要把p2向前移动3格。直到p1=p2,表明所有空格都已经替换完毕。
public class ReplaceSpace {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str=scanner.nextLine();
scanner.close();
char[] charArray = str.toCharArray();
int length=charArray.length;
int spaceNumber=0;//获取空格数量
for (char c : charArray) {
if(c==' ') {
spaceNumber++;
}
}
int newLength=length+spaceNumber*2;
char[] tempArray=new char[newLength];//新的数组的长度
System.arraycopy(charArray, 0, tempArray, 0, length);//将原来的数组拷贝到新长度的数组中
int indexofOriginal = length - 1;
int indexofNew = newLength - 1;
while (indexofOriginal>=0&&indexofOriginal!=indexofNew) {
if (tempArray[indexofOriginal]==' ') {
tempArray[indexofNew--] = '0';
tempArray[indexofNew--] = '2';
tempArray[indexofNew--] = '%';
}else {
tempArray[indexofNew--] = tempArray[indexofOriginal];
}
indexofOriginal--;
}
for (char c : tempArray) {
System.out.print(c);
}
}
}
Java 替换空格的更多相关文章
- 剑指offer面试题4 替换空格(java)
注:利用java中stringBuilder,append,length方法很方便的解决字符串问题 /* * 剑指offer 替换空格 * xsf * */ /*开始替换空格的函数,length为原数 ...
- 【Java】 剑指offer(4) 替换空格
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请实现一个函数,把字符串中的每个空格替换成"%20&quo ...
- 剑指Offer:面试题4——替换空格(java实现)
问题描述:请实现一个函数,把字符串中的每个空格替换成"%20". 例如: 输入:"We are happy." 输出:"We%20are%20happ ...
- 剑指offer编程题Java实现——替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. package ...
- 剑指offer【02】- 替换空格(Java)
题目:替换空格 考点:字符串 题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. ...
- 剑指offer编程题Java实现——面试题4替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. package Solution; ...
- (2)剑指Offer之二维数组查找和替换空格问题
一 二维数组查找 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 问 ...
- 【剑指offer】面试题 5. 替换空格
面试题 5. 替换空格 题目:请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy. 则经过替换之后的字符串为We%20Are%20Hap ...
- 剑指offer第二版-5.替换空格
面试题5:替换空格 题目要求: 实现一个函数,把字符串中的每个空格都替换成“%20”,已知原位置后面有足够的空余位置,要求改替换过程发生在原来的位置上. 思路: 首先遍历字符串求出串中空格的数量,求出 ...
随机推荐
- Asp.Net 天气 WebService 使用
本文使用Asp.Net (C#)调用互联网上公开的WebServices(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)来实 ...
- Java基础教程(12)--深入理解类
一.方法的返回值 当我们在程序中调用方法时,虚拟机将会跳转到对应的方法中去执行.当以下几种情况发生时,虚拟机将会回到调用方法的语句并继续向下执行: 执行完方法中所有的语句: 遇到return语句: ...
- 【转】从msql数据库处理高并发商品超卖
今天王总又给我们上了一课,其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过:但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识.今天就我的一些理解,整理一下 ...
- 从 Hadoop 1.0 到 Hadoop 2.0 ,你需要了解这些
学习大数据,刚开始接触的是 Hadoop 1.0,然后过度到 Hadoop 2.0 ,这里为了书写方便,本文中 Hadoop 1.0 采用 HV1 的缩写方式,Hadoop 2.0 采用 HV2 的缩 ...
- DHU 1788 Chinese remainder theorem again 中国剩余定理
Chinese remainder theorem again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- python Django html 模板循环条件
views里返回数据为例: renturn render(request,'xxx.html',{'obj':123,'k1':[1,2,3,4],'k2':{'name':'yooma','age' ...
- window.open('') 火狐,IE事件冒泡处理,点击事件冒泡处理
window.open('') 火狐,IE事件冒泡处理,点击事件冒泡处理 写PC下拉菜单的时候,hover样式显示下拉菜单,可能会这样写 <li class="xb_li1" ...
- thinkPHP3.2.2 控制器内跳转的三种方式
public function jump() { $obj = new TestController(); $obj->logged(); } public function jump1() { ...
- js面向对象设计之class中一些坑和技巧
this的指向 super 类工厂,类中定义方法名时,可以使用字符串,这就可以创建工厂函数(类似模板类) Generator 函数 静态属性和私有属性.私有方法 new.target
- c# 后台异步请求接口
第一步:引用程序集:Systen.Net.Http 第一种方式: 异步 Get请求 HttpClient client = new HttpClient(); //client. ...