Java處理不可見(jiàn)特殊字符要點(diǎn)解析
看下圖所示,兩個(gè)空字符串不相等
因?yàn)閟tr中有不可兼得特殊字符,可以在debug中將str的值復(fù)制出來(lái),然后粘貼到雙引號(hào)中們就可以看到這個(gè)字符的真面目,如下圖所示:
uFEFF為控制字符,名為'零寬不折行空格(Zero Width No-Break Space)',此外,類(lèi)似的不可見(jiàn)字符還有u202A(從左至右嵌入)、u202E(從右至左強(qiáng)制)等控制字符
那我們事怎么遇到這些控制字符的呢?
在讀取文件或者從某文件屬性中直接復(fù)制路徑經(jīng)常會(huì)遇到這種問(wèn)題
在開(kāi)發(fā)中可以對(duì)獲得的字符串進(jìn)行以下處理,來(lái)刪除這些控制字符:網(wǎng)上很多說(shuō)使用正則p{Cntrl}進(jìn)行替換,經(jīng)過(guò)測(cè)試并不起作用,而是用朋友告訴我的p{C}
String str2 = str1.replaceAll('p{C}', '');
System.out.println(''.equals(str2));
就是一些特殊的Unicode字符,如果不確定,可先判斷長(zhǎng)度是否一樣:
推薦字符查詢(xún)網(wǎng)址查詢(xún)網(wǎng)址:
https://unicode-table.com/cn/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享2. 詳解瀏覽器的緩存機(jī)制3. vue3+ts+elementPLus實(shí)現(xiàn)v-preview指令4. jsp文件下載功能實(shí)現(xiàn)代碼5. 如何在jsp界面中插入圖片6. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理7. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法8. phpstudy apache開(kāi)啟ssi使用詳解9. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器10. JSP之表單提交get和post的區(qū)別詳解及實(shí)例
