Java 我可能用了假的trim

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

相關文章
相關標籤/搜索