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);
}
}
分享到:
相关推荐
给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。 //比如 “ I like http://hi.baidu.com/mianshiti ” 会变成 "I like http://hi.baidu.com/mianshiti"。
对于给定的字符串A和B,试设计一个算法,计算其扩展距离。 ?编程任务: 对于给定的字符串A和B,编程计算其扩展距离。 Input 由文件input.txt给出输入数据。第1 行是字符串A;第2 行是字符串B。第3行是空格 与...
java编程统计一个字符串中的字母,数字,空格,其他,输入一个字符串,就会输出字符串中包含的字母,数字,空格,其他
本文将深入探讨如何利用JS来有效地去除字符串中的空格,包括单个空格、多个连续空格以及字符串开头和结尾的空格。 ### 去除字符串中的空格 #### 1. 使用`trim()`方法去除两端空格 在JS中,最简单的方法是使用`...
在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`split()`方法来实现,该方法是Java `String`类的一个成员。在...
在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以...
Java 字符串分割是 Java 编程语言中的一种常见操作,用于将给定的字符串按照一定的规则分割成多个子字符串,并将其存储在数组或集合中。在本例中,我们将学习如何使用 Java 实现字符串分割功能,包括将输入字符串...
根据提供的信息,本文将详细介绍一个在SQL Server 2000环境下用于字符串拼接的自定义函数,并对该函数的功能、实现方法以及应用场景进行深入解析。 ### 一、SQL Server 2000简介 SQL Server 2000是微软发布的一款...
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。...
在C语言中,合并多个`char *`类型的字符串是一项常见的任务,这通常涉及到字符串操作和内存管理。在给定的场景中,`main.c`文件是测试程序,它调用了`tools.h`头文件中定义的`MultiCombine`函数,这个函数的目的是将...
js 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t
动态规划算法:从1到26分别对应a-z的每一个字母,输入一串数字的字符串,转换为字母,输出所有可能的字母序列。...从字符串的头部开始,每次可以取一个或者两个数字进行转换,向左为取一个,向右取两个,,,,
本文将详细介绍如何在Java中生成随机字符串,并且会结合给定的部分代码示例进行深入分析。 #### 基本原理与方法 Java提供了多种方法来生成随机字符串,主要包括使用`java.util.Random`类和`java.security....
本文将深入探讨如何在Java中进行中文字符的判断和计数,这主要基于Java的Unicode编码特性以及字符集的理解。 首先,我们需要理解Java中的字符类型`char`。在Java中,一个`char`类型的变量可以存储一个Unicode字符,...
1. 字符串格式化:将多个变量合并成一个格式化的字符串,例如使用占位符和参数列表。 2. 去除空白字符:包括去除前导、尾随和所有内部的空白字符。 3. 字符串比较:忽略大小写或者按特定规则进行字符串比较。 4. ...
Java字符串是编程中非常基础且重要的概念,尤其是在Java语言中,字符串处理无处不在。String类在Java中扮演着至关重要的角色,它是不可变的对象,这意味着一旦创建了String对象,就不能更改其内容。这个特性源自于...
例如,给定字符串"Your name is {{name}}"和键值对对象{"name": "Johnny"},它应该返回"Your name is Johnny"。 双花括号和变量名之间的空格/制表符将被忽略。例如,“My name is {{name}}”、“My name is {{name}...
如果我们要统计子串在主字符串中出现的次数,可以在找到一次匹配后,将主字符串的指针移动到匹配结束的位置加上next function的值,这样可以跳过已匹配的部分,继续寻找下一个匹配。 从提供的文件名来看,可能包含...
根据给定的文件信息,我们可以总结出以下关于统计字符串中特定字符(如字母、空格)数量以及处理字符串中子串出现次数与删除操作的知识点: ### 1. 统计字符串中的字母与空格数量 #### 函数:`int Statistic(char ...
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数