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