`

java-给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。

 
阅读更多

public class DeleteExtraSpace {

	/**
	 * 题目:给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
	 * 方法1.用已有的String类的trim和replaceAll方法
	 * 方法2.全部用正则表达式,这个我不熟
	 * 方法3.“重新发明轮子”,从头遍历一次
	 */
	public static void main(String[] args) {

		String[] strs={
				"",
				" ",
				"a",
				"  hello    world   ",
		};
		for(String str:strs){
			String str2=str.trim().replaceAll(" +", " ");
			System.out.println(str2+",length2="+str2.length());
			
			String str3=deleteExtraSpace(str);
			System.out.println(str3+",length3="+str3.length());
			
			System.out.println(str2.equals(str3));
			System.out.println("=========================");
		}
		
	}

	public static String deleteExtraSpace(String str){
		if(str==null){
			return null;
		}
		if(str.length()==0 || str.equals(" ")){
			return new String();
		}
		char[] oldStr=str.toCharArray();
		int len=str.length();
		char[] tmpStr=new char[len];
		boolean keepSpace=false;
		int j=0;//the index of new string
		for(int i=0;i<len;i++){
			char tmpChar=oldStr[i];
			if(oldStr[i]!=' '){
				tmpStr[j++]=tmpChar;
				keepSpace=true;
			}else if(keepSpace){
				tmpStr[j++]=tmpChar;
				keepSpace=false;
			}
		}
		
		//unlike c/c++,no "\0" at the end of a string. So,do the copy again...
		int newLen=j;
		if(tmpStr[j-1]==' '){
			newLen--;
		}
		char[] newStr=new char[newLen];
		for(int i=0;i<newLen;i++){
			newStr[i]=tmpStr[i];
		}
		return new String(newStr);
	}
}

1
0
分享到:
评论

相关推荐

    新浪面试题——删除多个连续的空格代码

    给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。 //比如 “ I like http://hi.baidu.com/mianshiti ” 会变成 "I like http://hi.baidu.com/mianshiti"。

    字符串比较问题对于长度相同的2 个字符串A和B,其距离定义为相应位置字符距离之和。2 个非空格

    对于给定的字符串A和B,试设计一个算法,计算其扩展距离。 ?编程任务: 对于给定的字符串A和B,编程计算其扩展距离。 Input 由文件input.txt给出输入数据。第1 行是字符串A;第2 行是字符串B。第3行是空格 与...

    java编程统计字符串的字母,数字,空格,其他

    java编程统计一个字符串中的字母,数字,空格,其他,输入一个字符串,就会输出字符串中包含的字母,数字,空格,其他

    JS去掉字符串空格

    本文将深入探讨如何利用JS来有效地去除字符串中的空格,包括单个空格、多个连续空格以及字符串开头和结尾的空格。 ### 去除字符串中的空格 #### 1. 使用`trim()`方法去除两端空格 在JS中,最简单的方法是使用`...

    Java分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`split()`方法来实现,该方法是Java `String`类的一个成员。在...

    java解析xml字符串

    在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以...

    java 字符串分割

    Java 字符串分割是 Java 编程语言中的一种常见操作,用于将给定的字符串按照一定的规则分割成多个子字符串,并将其存储在数组或集合中。在本例中,我们将学习如何使用 Java 实现字符串分割功能,包括将输入字符串...

    数据库字符串相加---字符串相加函数

    根据提供的信息,本文将详细介绍一个在SQL Server 2000环境下用于字符串拼接的自定义函数,并对该函数的功能、实现方法以及应用场景进行深入解析。 ### 一、SQL Server 2000简介 SQL Server 2000是微软发布的一款...

    给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型

     给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。...

    C语言合并多个char *类型的字符串

    在C语言中,合并多个`char *`类型的字符串是一项常见的任务,这通常涉及到字符串操作和内存管理。在给定的场景中,`main.c`文件是测试程序,它调用了`tools.h`头文件中定义的`MultiCombine`函数,这个函数的目的是将...

    js-utils-给定两个字符串s和t

    js 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t

    动态规划算法--1-26对应a-z字符串转换

    动态规划算法:从1到26分别对应a-z的每一个字母,输入一串数字的字符串,转换为字母,输出所有可能的字母序列。...从字符串的头部开始,每次可以取一个或者两个数字进行转换,向左为取一个,向右取两个,,,,

    Java获取随机字符串

    本文将详细介绍如何在Java中生成随机字符串,并且会结合给定的部分代码示例进行深入分析。 #### 基本原理与方法 Java提供了多种方法来生成随机字符串,主要包括使用`java.util.Random`类和`java.security....

    java 字符串中文判断

    本文将深入探讨如何在Java中进行中文字符的判断和计数,这主要基于Java的Unicode编码特性以及字符集的理解。 首先,我们需要理解Java中的字符类型`char`。在Java中,一个`char`类型的变量可以存储一个Unicode字符,...

    JAVA中处理字符串的类

    1. 字符串格式化:将多个变量合并成一个格式化的字符串,例如使用占位符和参数列表。 2. 去除空白字符:包括去除前导、尾随和所有内部的空白字符。 3. 字符串比较:忽略大小写或者按特定规则进行字符串比较。 4. ...

    java字符串实验题目

    Java字符串是编程中非常基础且重要的概念,尤其是在Java语言中,字符串处理无处不在。String类在Java中扮演着至关重要的角色,它是不可变的对象,这意味着一旦创建了String对象,就不能更改其内容。这个特性源自于...

    工具-Java-字符串模板插值-示例

    例如,给定字符串"Your name is {{name}}"和键值对对象{"name": "Johnny"},它应该返回"Your name is Johnny"。 双花括号和变量名之间的空格/制表符将被忽略。例如,“My name is {{name}}”、“My name is {{name}...

    Java检索字符串中是否存在某字符

    如果我们要统计子串在主字符串中出现的次数,可以在找到一次匹配后,将主字符串的指针移动到匹配结束的位置加上next function的值,这样可以跳过已匹配的部分,继续寻找下一个匹配。 从提供的文件名来看,可能包含...

    统计字符串的字母空格个数

    根据给定的文件信息,我们可以总结出以下关于统计字符串中特定字符(如字母、空格)数量以及处理字符串中子串出现次数与删除操作的知识点: ### 1. 统计字符串中的字母与空格数量 #### 函数:`int Statistic(char ...

    输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数

    输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数

Global site tag (gtag.js) - Google Analytics