System.out.println(" 我可能用了假的trim ".trim());
結果是,trim用了跟沒用同樣。難道是我眼花了,看到了假的空格?仍是我用了假的trim?java
而後看了下jdk源碼,發現我用的是真的trim!!java的trim能去掉的字符是unicode 小於32的字符,包括了換行,tab鍵等,可是有些看起來像空格的,好比:全角空格(unicode = 12288 ),不間斷空格(unicode=160),用trim去不掉。code
咱們能夠先將其替換unicode
replace((char) 12288, ' ')
而後在trim,就能夠了。字符串
後來看了下js是怎麼trim的,js中字符串trim竟然能夠去掉上面的「空格」,js的trim用正則實現以下源碼
replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')
java裏面固然也能夠直接用上面的正則來去,只是寫法比js麻煩。jdk