Java中split根據(jù)"."分割字符串問題舉例
1. 為啥str.split(“.”) 分割出來的是空的
split() 方法根據(jù)匹配給定的正則表達(dá)式來拆分字符串。
注意: . $ | * 等轉(zhuǎn)義字符,必須得加 \\。
因此,應(yīng)該用str.split(“\\.”)
2. Java中的轉(zhuǎn)義字符 Escape Character
字母前加上"\"來表示一些不能顯示的ASCII字符,如\0,\t,\n等,因?yàn)?,t,n等都不是原本ASCII表中的意思了,所以稱為轉(zhuǎn)義字符。
格式為:\+要轉(zhuǎn)義的字符
3. 正則表達(dá)式中的轉(zhuǎn)義符
正則表達(dá)式中的轉(zhuǎn)義符也為"\"。所以在java中書寫正則表達(dá)式時(shí),要先通過java的轉(zhuǎn)義再通過正則表達(dá)式的轉(zhuǎn)義才是真正要的表達(dá)式。
舉例
想要實(shí)現(xiàn)將字符串str = “192.168.0.1” 按照“.”進(jìn)行分割。
使用split(String regex)方法,regex 為正則表達(dá)式分隔符。
由于正則表達(dá)式中"." 是一個(gè)具有特殊意義的字符,它可用于匹配任何字符。
因此需要轉(zhuǎn)義符“\”,即正則表達(dá)式為regex = “\.”
但是轉(zhuǎn)義符"\“在java中也充當(dāng)著轉(zhuǎn)義符,因此還要對(duì)”\“進(jìn)行轉(zhuǎn)義。
所以正則表達(dá)式要寫成 “\\.”
String[] strs = str.split(”\\.")
補(bǔ)充:java的split方法分割字符串(分隔符如* | . ^ )及注意點(diǎn)
1、split表達(dá)式,其實(shí)就是一個(gè)正則表達(dá)式。* | . ^ 等符號(hào)在正則表達(dá)式中屬于一種有特殊含義的字符,如果使用此種字符作為分隔符,必須使用轉(zhuǎn)義符即\加以轉(zhuǎn)義。
String add1="南京*建鄴區(qū)"; String[] splitAdd1=add1.split("\\*"); System.out.println(splitAdd1[0]+splitAdd1[1]); String add2="南京|建鄴區(qū)"; String[] splitAdd2=add2.split("\\|"); System.out.println(splitAdd2[0]+splitAdd2[1]); String add3="南京.建鄴區(qū)"; String[] splitAdd3=add3.split("\\."); System.out.println(splitAdd3[0]+splitAdd3[1]); String add4="南京^建鄴區(qū)"; String[] splitAdd4=add4.split("\\^"); System.out.println(splitAdd4[0]+splitAdd4[1]);
2、如果使用多個(gè)分隔符則需要借助 | 符號(hào)。
String address="南京1^南京2*南京3#南京4|南京5"; String[] splitAddress=address.split("\\^|\\*|#|\\|"); System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]+splitAddress[3]+splitAddress[4]);
總結(jié)
到此這篇關(guān)于Java中split根據(jù)"."分割字符串問題的文章就介紹到這了,更多相關(guān)Java split根據(jù).分割字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java字符串?dāng)?shù)組進(jìn)行大小排序的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猨ava字符串?dāng)?shù)組進(jìn)行大小排序的簡(jiǎn)單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09java基礎(chǔ)之初始化ArrayList時(shí)直接賦值的4種方式總結(jié)
ArrayList是Java中的一個(gè)類,它是Java集合框架中的一部分,用于實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,下面這篇文章主要給大家介紹了關(guān)于java基礎(chǔ)之初始化ArrayList時(shí)直接賦值的4種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07Spring的BeanUtils.copyProperties屬性復(fù)制避坑指南
這篇文章主要介紹了Spring的BeanUtils.copyProperties屬性復(fù)制避坑指南,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Token登陸驗(yàn)證機(jī)制的原理及實(shí)現(xiàn)
這篇文章介紹了Token登陸驗(yàn)證機(jī)制的原理及實(shí)現(xiàn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12JAVA重復(fù)調(diào)用接口導(dǎo)致數(shù)據(jù)不一致的問題解決
在使用JAVA進(jìn)行開發(fā)時(shí),我們經(jīng)常會(huì)遇到要調(diào)用接口來獲取數(shù)據(jù)的情況,本文主要介紹了JAVA重復(fù)調(diào)用接口導(dǎo)致數(shù)據(jù)不一致的問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式
這篇文章主要介紹了關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式,當(dāng)隊(duì)列滿時(shí),生產(chǎn)者需要等待隊(duì)列有空間才能繼續(xù)往里面放入商品,而在等待的期間內(nèi),生產(chǎn)者必須釋放對(duì)臨界資源的占用權(quán),這是消費(fèi)者模式,需要的朋友可以參考下2023-07-07