给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
2014-08-01 12:04
603 查看
<pre name="code" class="java">package com.one; public class DeleteExtraSpace { /** * 题目:给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。 方法1.用已有的String类的trim和replaceAll方法 * 方法 2.全部用正则表达式,这个我不熟 方法 3.“重新发明轮子”,从头遍历一次 */ public static void main(String[] args) { String strs = " hello world ! "; String str2 = strs.trim().replaceAll(" +", " "); System.out.println(str2 + ",length2=" + str2.length()); String str3 = deleteExtraSpace(strs); 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); } }
相关文章推荐
- 给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。例如:" i am a little boy.
- [删除字符串中多余的空格]给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
- 给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
- 给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
- 删除字符串中多余的空格]给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
- 删除字符串开始和结尾空格,并将中间多个空格合并为一个空格
- 删除字符串开始及末尾的空格,并且把数组中间的多个空格转化为一个
- 面试题 删除字符串开始以及末尾的若干空格,并且把中间多个空格转化为一个
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化(合并)为1个
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)
- java----输入一个字符串,去掉字符串开头的空格和结尾的空格,若字符串中间有连续的空格,则只保留一个空格。
- java----输入一个字符串,去掉字符串开头的空格和结尾的空格,若字符串中间有连续的空格,则只保留一个空格。(使用list解答)
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个。
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个
- (科大讯飞)删除字符串中的连续空格(只保留一个),O(n)时间复杂度,O(1)空间复杂度
- 删除一个字符串中连续的空格
- 字符串 删除字符串开始以及末尾的空白符,并把数组中间的多个空格(如果有)符转换为1个
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个。
- 需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个
- 实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.