
分享一篇关于java去除字符串空格方法,这是我自己写的项目中一步步找到的,最后有自己需要的,有需要的朋友可以参考一下哈。
超初我用的只是最简单的
网上搜索的都是什么replace(" ","") 感觉很莫名其妙
你使用replaceAll(" ","")方法时必须有返回值,类于
代码如下 |
|
String str = "A B C D E"; str = str.replaceAll(" ", ""); |
这样就删除空格了,你可能是用了replaceAll(" ", "") 方法,但没有返回值赋值
后来网站搜索发现如下代码
代码如下 | 复制代码 |
import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringUtil { public static void replaceBlank() { Pattern p = Pattern.compile(“\s*|t|r|n”); String str="I am a, I am Hello ok, n new line ffdsa!"; System.out.println("before:"+str); Matcher m = p.matcher(str); String after = m.replaceAll(""); System.out.println("after:"+after); } public static void main(String[] args) { replaceBlank(); } }
|
上面这代码可以字符串中的空格、回车、换行符、制表符
我再google一下,这个正好是我要的,因为我不想删除除空格外的内容有只。
代码如下 |
|
package com.sharell.Info; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public class DelSpace { public static void main(String[] args){ String str = " wo shi zhong guo ren "; sameResult(str); } private static void sameResult(String str) { System.out.println(delByPattern(str)); System.out.println(delByRegex(str)); System.out.println(delBySB(str)); System.out.println(delByArr(str)); } public static String delByPattern(String str){ Pattern p=Pattern.compile(" {2,}"); Matcher m=p.matcher(str); String result=m.replaceAll(" "); return result; } private static String delByRegex(String str) { String[] arr = str.split(" +"); String result = ""; for(int i = 0;i<arr.length;i++){ result+=arr[i]+" "; } if(!str.endsWith(" ")){ result=result.substring(0,result.length()-1); } return result; } public static String delBySB(String str){ StringBuffer sb = new StringBuffer(str); for(int index = 0;index<sb.length();index++){ if(index<sb.length()-1&&sb.charAt(index)==' '&&sb.charAt(index+1)==' '){ sb.deleteCharAt(index+1); index--; } } return sb.toString(); } private static String delByArr(String str) { char[] arr = str.toCharArray(); String result = ""; ArrayList<Character> al = new ArrayList<Character>(); for(int i=0;i<arr.length;i++){ if(i<(arr.length-1)&&arr[i]==' '&&arr[i+1]==' '){ continue; } else{ al.add(arr[i]); } } al.trimToSize(); for(int i=0;i<al.size();i++){ result+=al.get(i); } return result; } }
|