Java處理不可見特殊字符要點解析
看下圖所示,兩個空字符串不相等

因為str中有不可兼得特殊字符,可以在debug中將str的值復(fù)制出來,然后粘貼到雙引號中們就可以看到這個字符的真面目,如下圖所示:

\uFEFF為控制字符,名為"零寬不折行空格(Zero Width No-Break Space)",此外,類似的不可見字符還有\(zhòng)u202A(從左至右嵌入)、\u202E(從右至左強制)等控制字符
那我們事怎么遇到這些控制字符的呢?
在讀取文件或者從某文件屬性中直接復(fù)制路徑經(jīng)常會遇到這種問題
在開發(fā)中可以對獲得的字符串進行以下處理,來刪除這些控制字符:網(wǎng)上很多說使用正則\\p{Cntrl}進行替換,經(jīng)過測試并不起作用,而是用朋友告訴我的\\p{C}

String str2 = str1.replaceAll("\\p{C}", "");
System.out.println("".equals(str2));
就是一些特殊的Unicode字符,如果不確定,可先判斷長度是否一樣:

推薦字符查詢網(wǎng)址查詢網(wǎng)址:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能
這篇文章主要介紹了Spring Boot Admin實現(xiàn)服務(wù)健康預(yù)警功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
使用Java和SpringBoot實現(xiàn)服務(wù)器發(fā)送事件(Server-Sent Events)
使用Java開發(fā)web應(yīng)用,大多數(shù)時候我們提供的接口返回數(shù)據(jù)都是一次性完整返回,有些時候,我們也需要提供流式接口持續(xù)寫出數(shù)據(jù),以下提供一種簡單的方式,本文給大家介紹了如何在Java web中實現(xiàn)服務(wù)器發(fā)送事件,需要的朋友可以參考下2024-02-02
Java在高并發(fā)場景下實現(xiàn)點贊計數(shù)器
點贊計數(shù)器的本質(zhì)就是對某個變量在高并發(fā)情況下的修改,這篇文章主要為大家介紹了Java實現(xiàn)點贊計數(shù)器的示例代碼,感興趣的小伙伴可以了解一下2023-06-06
詳解SpringBoot中@ConditionalOnClass注解的使用
這篇文章主要和大家詳細介紹一下springboot中@ConditionalOnClass注解的用法,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-08-08
Java實現(xiàn)Web應(yīng)用中的定時任務(wù)(實例講解)
下面小編就為大家分享一篇Java實現(xiàn)Web 應(yīng)用中的定時任務(wù)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11
Java 數(shù)據(jù)類型及類型轉(zhuǎn)換的互相轉(zhuǎn)換實例代碼
這篇文章主要介紹了Java 數(shù)據(jù)類型及類型轉(zhuǎn)換的互相轉(zhuǎn)換實例代碼,需要的朋友可以參考下2020-10-10

