Java使用split分割無效獲取不到預(yù)期效果的解決辦法
問題:
通過
String
字符串中split
方法分割字符串得到數(shù)組信息獲取不到的問題。
情景復(fù)現(xiàn):
代碼比較簡單寫個main方法運行后就可以看到效果。
public static void main(String[] args) { String name="趙云.韓信.李白.諸葛亮"; String[] split = name.split("."); System.out.println("分割后數(shù)據(jù)量:"+split.length); }
輸出結(jié)果:
解決方式
查看該方法的源碼可以發(fā)現(xiàn),方法參數(shù)是正則表達式,匹配符合此字符串進行拆分成數(shù)組,并且源碼也說明不能以單個字符傳遞以下
".$|()[{^?*+\\"
內(nèi)容
翻譯:如果正則表達式是一個
(1)單字符字符串,且該字符不是正則表達式的元字符之一".$|()[{^?*+\\"
(2)雙字符字符串,第一個字符是反斜杠,第二個不是ascii數(shù)字
或ascii字母
。
只要這2個條件不滿足那么就會走正則模式。
那就意味著我今天使用的是".$|()[{^?*+\\"
其中的一個單字符去進行匹配也沒法得到我需要預(yù)期的效果。
我們簡單的驗證下使用
$
測試效果:
運行效果:
正則字符
轉(zhuǎn)義
答案已經(jīng)在表格里面了要使用正則的字符需要轉(zhuǎn)義
//代碼中2個反斜杠等于一個反斜杠 "\\" 對于 "\"
回到正題那么"."
該怎么獲取呢?雙反斜杠就ok
總結(jié)
到此這篇關(guān)于Java使用split分割無效獲取不到預(yù)期效果的解決辦法的文章就介紹到這了,更多相關(guān)Java使用split分割無效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Elasticsearch查詢Range Query語法示例
這篇文章主要為大家介紹了Elasticsearch查詢Range Query語法示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04SpringBoot項目中讀取resource目錄下的文件六種方法
這篇文章給大家總結(jié)了SpringBoot項目中讀取resource目錄下的文件六種方法,文中有詳細的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下2024-05-05springboot 打包部署 共享依賴包(分布式開發(fā)集中式部署微服務(wù))
這篇文章主要介紹了springboot 打包部署 共享依賴包(分布式開發(fā)集中式部署微服務(wù))的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-06-06SpringBoot2.1.x,創(chuàng)建自己的spring-boot-starter自動配置模塊操作
這篇文章主要介紹了SpringBoot2.1.x,創(chuàng)建自己的spring-boot-starter自動配置模塊操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Spring-全面詳解(學(xué)習(xí)總結(jié))
這篇文章主要介紹了詳解Spring框架入門,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能給你帶來幫助2021-07-07