Java去除字符串多余空格以及首尾空格
2013-03-21 15:20
344 查看
对于这个问题,我的处理方法是:
1.先通过递归数出字符串中连续空格的个数。
2.将有连续空格的位置去除多余空格。
3.判断首尾是否有空格。
第一步,判断当前位置是否是空格以及连续空格的个数,这里使用一个递归的方法比较简单。代码如下:
传入字符串对象 s ,以及当前的位置 index,最终返回一个 int 型的结果,也就是多少个空格。
第二步,跟上返回的空格数,与当前的位置,使用 String 对象自带的 substring() 方法,将字符串分割为两部分,去掉中间的空格,再连接起来,使连续多个空格变为一个。代码如下:
第三步,第二步完成之后,第三步就很简单了,因为我们已经将字符串中多余的空格变为一个空格,如果需要去除首尾空格,只需要判断首尾是否是空格即可。代码如下:
这样一来,一个去除多余空格,去除首尾空格的函数就完成了。接下来调用一下看看,代码如下:
1.先通过递归数出字符串中连续空格的个数。
2.将有连续空格的位置去除多余空格。
3.判断首尾是否有空格。
第一步,判断当前位置是否是空格以及连续空格的个数,这里使用一个递归的方法比较简单。代码如下:
public static int getBlankNumber(String s, int index) { if (index < s.length()) { if (s.charAt(index) == ' ') { return getBlankNumber(s, index + 1) + 1; } else { return 0; } } else { return 0; } }
传入字符串对象 s ,以及当前的位置 index,最终返回一个 int 型的结果,也就是多少个空格。
第二步,跟上返回的空格数,与当前的位置,使用 String 对象自带的 substring() 方法,将字符串分割为两部分,去掉中间的空格,再连接起来,使连续多个空格变为一个。代码如下:
public static String mergeBlank(String s) { int numberBlank = 0; String a1; //字符串的第一部分 String a2; //字符串的第二部分 for (int index = 0; index < s.length(); index++) { //循环整个字符串,判断是否有连续空格 numberBlank = getBlankNumber(s, index); if (numberBlank >= 2) { //根据连续空格的个数以及当前的位置,截取字符串 a1 = s.substring(0, index); a2 = s.substring(index + numberBlank - 1, s.length()); s = a1 + a2; //合并字符串 } } return s; }
第三步,第二步完成之后,第三步就很简单了,因为我们已经将字符串中多余的空格变为一个空格,如果需要去除首尾空格,只需要判断首尾是否是空格即可。代码如下:
public static String trim(String s) { if (s.charAt(0) == ' ') { s = s.substring(1, s.length()); } if (s.charAt(s.length() - 1) == ' ') { s = s.substring(0, s.length() - 1); } return s; }
这样一来,一个去除多余空格,去除首尾空格的函数就完成了。接下来调用一下看看,代码如下:
public static void main(String[] args) { String name = mergeBlank(" aaa a aa "); System.out.println("name="+name+"|"); //结果:name= aaa a aa | name = trim(name); System.out.println("name="+name+"|"); //结果:name=aaa a aa| }
相关文章推荐
- Java去除字符串多余空格以及首尾空格
- Java文本框只能输入数字,键盘监听,以及判断字符串是否只是数字,并去除前面多余的0
- C++去除字符串首尾和串中多余空格
- C语言实现一个去除字符串中的首尾空格,字母中间有多个空格的去除多余的,剩余一个空格
- java 去除字符串中多余的空格,只留一个
- <Mooc C++ 教程作业>去除字符串首尾多余的空格
- Java 去除字符串中多余的空格,只留一个
- java去除字符串中的空格、回车、换行符、制表符
- java去除字符串中的空格、回车、换行符、制表符 .
- 字符串——去除多余空格和首字母大写
- 去除字符串中单词的多余空格
- Java中去除字符串两边空格拦截器StringTrimInterceptor
- Java去除字符串中的空格、换行等转义字符
- 【廖雪峰 python教程 课后题 切片】利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
- java去除字符串中的空格、回车、换行符、制表符
- java去除字符串中的空格、回车、换行符、制表符
- java中如何去除字符串中的全部空格
- 去除字符串首尾空格
- 去除字符串首尾空格
- 编写一个函数,从一个字符串中去除多余的空格。当函数发现字符串中有一个地方由一个或多个连续的空格组成,就把它们改成单个空格字符。