【Java】编写一个方法,将字符串中的空格全部替换为“ ”

原创 2015年07月07日 15:21:51

编写一个方法,将字符串中的空格全部替换为“%20”,假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的真实长度。

因为java里字符串是不可变的,所以如果用java,用字符数组而不是字符串

从后往前放不用担心数据覆盖问题

<span style="font-family:Microsoft YaHei;">public class replaceSpaces {
	public void spacesReplace(char[] str, int length)
	{
		int spaceCount = 0, newLength;
		for( int i = 0; i < length; i++)
		{
			if (str[i] == ' ')
				spaceCount++;
		}
		newLength = length + spaceCount*2;
		str[newLength] = '\0';
		for(int i = length -1; i >= 0; i--)
		{
			if(str[i] == ' ')
			{
				str[newLength - 1] = '0';
				str[newLength - 2] = '2';
				str[newLength - 3] = '%';
				newLength = newLength - 3;
			}	
			else
			{
				str[newLength - 1] = str[i];
				newLength = newLength - 1;
			}
		}
	}
}
</span>

测试用例:

1. 输入的字符串包含空格(空格位于字符串的最前面,最后面,中间,连续多个空格)

2. 输入的字符串没有空格

3. 特殊输入测试(字符串是null,字符串是空字符串,字符串只有一个空格,字符串只有连续多个空格)


举一反三:

有两个排序的数组A1和A2,在A1的末尾有足够多的空余空间容纳A2。请实现一个函数,把A2中的所有数字插入到A1中并且所有数字是排序的。

还是从后往前插入,需要注意的是如果A1的元素比A2的少,比较完成后A2还有一部分元素需要依次插入A1

#include<iostream>
using namespace std;

void insertString(char A1[], char A2[], int length1, int length2) {
	if (A1 == NULL || A2 == NULL || length1 < 0 || length2 < 0) {
		return;
	}
	int newlength = length1 + length2;
	int index1 = length1 - 1;
	int index2 = length2 - 1;
	while(index1 >=0 && index2 >= 0) {
		if (A1[index1] > A2[index2]) {
			A1[newlength - 1] = A1[index1];
			index1--;
			newlength--;
		}
		else if (A1[index1] < A2[index2]) {
			A1[newlength - 1] = A2[index2];
			index2--;
			newlength--;
		}
		else {
			A1[newlength - 1] = A2[index2];
			A1[newlength - 2] = A1[index1];
			index1--;
			index2--;
			newlength -= 2;
		}
	}
	
	if(length1 < length2) {
		for( int i = index2; i >= 0; i--) {
			A1[newlength - 1] = A2[index2];
		}
	}
}




java如何把String字符串中所有的空格和制表符(\t)替换成单个符号。

该方法可用于将字符串分解成若干有用的数组。 大致代码如下: package test; import java.util.ArrayList; import java.util.Lis...
  • suyu_yuan
  • suyu_yuan
  • 2016年05月18日 16:43
  • 6229

java 基础数据遍历(1)----将一个字符串中的空格替换成“%20”

题目要求:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路: 1.确认使用for...
  • wjw19969527
  • wjw19969527
  • 2016年04月12日 14:51
  • 797

java替换字符串中所有的空格

public static String replaceBlankSpace(String str){ return str.replaceAll("\\s*", ""); }
  • u012934325
  • u012934325
  • 2017年06月22日 20:46
  • 550

java string 字符串替换

i、replace方法     该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:     String ...
  • yiluoAK_47
  • yiluoAK_47
  • 2012年06月06日 09:33
  • 176091

使用java中replaceAll方法替换字符串中的反斜杠

今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: 1 java.util.regex.PatternSyntaxExce...
  • lcczzu
  • lcczzu
  • 2015年07月13日 14:48
  • 15444

java 多个空格替换成一个空格 一次替换多个空格

将多个空格替换为一个: string=string.replace(" +"," "); 简单有好用!
  • tiantiandjava
  • tiantiandjava
  • 2013年11月18日 16:16
  • 17322

字符串中的空格替换JAVA实现

package org.lza; /**  * 实现一个函数,把字符串中的每一个空格都替换成"%20"。  * 例如输入"We are happy",则输出"We%20are%20happy。 ...
  • LZA407
  • LZA407
  • 2014年05月12日 00:34
  • 1060

java字符串中多个空格替换成一个空格

public class test { public static void main(String[] args) { String dest = ""; String str="ba...
  • xin_jmail
  • xin_jmail
  • 2014年04月19日 11:00
  • 11350

java字符串中多个空格替换成一个空格

目的:字符串中多个空格替换成一个空格 public class test { public static void main(String[] args) { String w= ""; ...
  • mingtianhaiyouwo
  • mingtianhaiyouwo
  • 2015年11月15日 18:26
  • 2666

C#之中的字符串替换方法以及判断是否存在特定子字符串

本人是新手,写此博文旨在记录自己学习历程与分享,如果是大神的请不要喷知识点过于低级,谢谢。 在C#中我们可以通过两个字符串的方法完成对字符串中是否存在子字符串与对特定子字符串的替换。 以下例子既是...
  • qq_38507850
  • qq_38507850
  • 2017年12月19日 17:02
  • 71
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java】编写一个方法,将字符串中的空格全部替换为“ ”
举报原因:
原因补充:

(最多只允许输入30个字)