1. 程式人生 > >JAVA去空格,注意事項

JAVA去空格,注意事項

情況:JAVA字串中,顯示有空格,正常可以通過正則表示式,或者String.trim()方法去掉,但是有些是不可以的

原因:空格的顯示,用的ASCII編碼是不一樣導致,如果是用空格,TAB鍵,或者換行符等,都可以用常規方法去除,但是我在前端頁面中,抓到的了 (牛逼空格),沒錯就是它,然後正則和String.trim(),replaceAll("//s*","")等都失效了。

解決:

public class TestSpace {
	
	public static void main(String[] args) throws Exception {
        //a中的空格,顯示為空格,其實是多個 組成的,所以正常方式,無法替換空格
		String a = "18699104747     ";
		String b = "12345678977     ";
		
		System.out.println(a.length());
		System.out.println(b.length());
		
		//不成功
		//a = a.replaceAll("\\s*", "");
		b = b.replaceAll("\\s*", "");
		System.out.println("a:" + a + "----");
        System.out.println("b:" + b + "----");
		System.out.println("a長度:" + a.length());
		System.out.println("b長度:" + b.length());
		
		//成功
		byte bytes[] = {(byte) 0xC2,(byte) 0xA0};
	    String UTFSpace = new String(bytes,"utf-8");
	    a = a.replaceAll(UTFSpace, "");
	    System.out.println("a:" + a + "----");
	    System.out.println("a長度:" + a.length());
        
        
	}

}

結果:

16 16 a:18699104747     ---- b:12345678977---- a長度:16 b長度:11 a:18699104747---- a長度:11

參考文章: