字符串中的空格替换问题(Java版)
解决方式一:时间复杂度为O(n^2)
解决方式二:时间复杂度为O(n)
代码实现:
package string;
public class SpaceStringReplace2 {
//len为数组大小的总容量
public static void SpaceReplace(String strOld,int len){
char[] chs =new char[len];
char[] ch = strOld.toCharArray();
for (int i = 0; i < ch.length; i++) {
chs[i] = ch[i];
}
int strOldLen = 0;
int blackString = 0;
if(chs==null || len<=0)
{
new NullPointerException();
}
int i=0;
while(chs[i]!='\0'){
strOldLen++;
if(chs[i]==' '){
blackString++;
}
i++;
}
//将空格转换成%20字符的长度
int strNewLen = strOldLen + blackString*2;
if(strNewLen>len){
new ArrayIndexOutOfBoundsException();
}
int indexOfOld=strOldLen;//指向'\0'
int indexOfNew=strNewLen;
while(indexOfOld>0 && indexOfNew>indexOfOld){
if(chs[indexOfOld] == ' '){
chs[indexOfNew--] = '0';
chs[indexOfNew--] = '2';
chs[indexOfNew--] = '%';
}
else{
chs[indexOfNew--] = chs[indexOfOld];
}
--indexOfOld;
}
for (char c : chs) {
if(c=='\0'){
break;
}
System.out.print(c);
}
System.out.println();
}
public static void main(String[] args) {
//StringBuilder str = new StringBuilder("We are happy.");
long timelast = System.currentTimeMillis();
String str = "We are happy.";
SpaceReplace(str,100);//We%20are%20happy.
long timeafter = System.currentTimeMillis();
System.out.println(timeafter-timelast);
}
}
解决方式三:JDK自带的字符串分割
代码实现:
package string;
public class SpaceStringReplace {
public static String SpaceReplace(String strOld){
String[] split = strOld.split(" ");
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < split.length-1; i++) {
stringBuilder.append(split[i]).append("%20");
}
stringBuilder.append(split[split.length-1]);
String strNew = stringBuilder.toString();
return strNew;
}
public static void main(String[] args) {
//StringBuilder str = new StringBuilder("We are happy.");
String str = "We are happy.";
System.out.println(SpaceReplace(str));//We%20are%20happy.
}
}
字符串中的空格替换问题(Java版)的更多相关文章
- 将一个字符串中的空格替换成“%20”(C、Python)
将一个字符串中的空格替换成“%20” C语言: /* ----------------------------------- 通过函数调用,传地址来操作字符串 1.先计算出替换后的字符串的长度 2.从 ...
- 《剑指offer面试题4》替换空格——实现函数把字符串中每个空格替换成“%20”
思路: 例如把we are happy这个字符串中所有空格替换成"%20",最直接的做法是从头开始扫苗,遇到空格就替换,并且把空格后面的字符都顺序后移.复杂度O(n^2). 重要思 ...
- 把字符串中的空格替换为"%20"
这个需要注意的是字符串的结尾最后一个字符为'\0',并不是空字符,复制时要一块复制,算法思想就是先计算出字符串中总的空格数,然后 重新计算字符串的长度,由于"%20"为3个字符,比 ...
- 符号替换问题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
public class Solution { public String replaceSpace(StringBuffer str) { String str1=str.toString(); c ...
- 编程练习 将一个字符串中的空格替换为 "%20"
重点:字符串和元组一样, 是不可变对象. 所以将创建一个新的字符串对象,将改变后的字符加入到该新的对象里. 两种方法: 1.python的 replace函数 2.判断修改 def replace(a ...
- 替换空格-请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution { public: void replaceSpace(char *str,int length) { char *tmp; ; int i; ;i<length; ...
- 【剑指offer】将字符串中的空格替换成"%20"
#include <iostream> #include <string> using namespace std; char *ReplaceSpace(char *str, ...
- 【剑指offer】替换字符串中的空格
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25002199 剑指offer上的第四道题目,在九度OJ上測试通过,但还是有些问题.由于是用 ...
- (CSDN迁移) 替换字符串中的空格
题目描述 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public ...
随机推荐
- wc---计算字数。
Linux wc命令用于计算字数. 利用wc指令我们可以计算文件的Byte数.字数.或是列数,若不指定文件名称.或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据. 语 ...
- 树莓派开机运行Python脚本 控制LED灯闪烁
一.新建一个开机运行文件 在 /home/pi/.config 下创建一个文件夹,名称为 autostart,并在该文件夹下创建一个led.desktop文件(文件名以.desktop结尾) 编辑le ...
- 【HDU】5249-KPI(线段树+离散化)
好久没写线段树都不知道怎么写了... 很easy的线段树二分问题 #include<cstdio> #include<set> #include<queue> #i ...
- SQL Server 为代码减负之存储过程
存储过程能够用来提高数据库的查询效率.由于它事先被编译过.被储存于内存中,每次执行前.不必被从新编译,所以效率非常高. 存储过程是一组sql增删改查的集合,假设程序中的一个功能涉及到对数据库的 ...
- Redis学习手冊(事务)
一.概述: 和众多其他数据库一样,Redis作为NoSQL数据库也相同提供了事务机制. 在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石. 相 ...
- 深入研究java.lang.ThreadLocal类 (转)
深入研究java.lang.ThreadLocal类 一.概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thr ...
- DOM和SAX是应用中操纵XML文档的差别
查看原文:http://www.ibloger.net/article/205.html DOM和SAX是应用中操纵XML文档的两种主要API.它们分别解释例如以下: DOM.即Do ...
- C语言编程入门——程序练习(下)
C语言的一些简单操作练习. 互换两个数字: # include <stdio.h> int main(void) { int i = 3; int j = 5; int t; //将i ...
- iOS Dev (51)加急审核
https://developer.apple.com/appstore/contact/? topic=expedite
- 1.3 Quick Start中 Step 8: Use Kafka Streams to process data官网剖析(博主推荐)
不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Step 8: Use Kafka Streams to process data ...