文章詳情頁
Java處理不可見特殊字符要點解析
瀏覽:2日期:2022-08-21 08:51:05
看下圖所示,兩個空字符串不相等
因為str中有不可兼得特殊字符,可以在debug中將str的值復(fù)制出來,然后粘貼到雙引號中們就可以看到這個字符的真面目,如下圖所示:
uFEFF為控制字符,名為'零寬不折行空格(Zero Width No-Break Space)',此外,類似的不可見字符還有u202A(從左至右嵌入)、u202E(從右至左強(qiáng)制)等控制字符
那我們事怎么遇到這些控制字符的呢?
在讀取文件或者從某文件屬性中直接復(fù)制路徑經(jīng)常會遇到這種問題
在開發(fā)中可以對獲得的字符串進(jìn)行以下處理,來刪除這些控制字符:網(wǎng)上很多說使用正則p{Cntrl}進(jìn)行替換,經(jīng)過測試并不起作用,而是用朋友告訴我的p{C}
String str2 = str1.replaceAll('p{C}', '');
System.out.println(''.equals(str2));
就是一些特殊的Unicode字符,如果不確定,可先判斷長度是否一樣:
推薦字符查詢網(wǎng)址查詢網(wǎng)址:
https://unicode-table.com/cn/
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
標(biāo)簽:
Java
相關(guān)文章:
排行榜