Java split()方法中的特殊符號(hào)舉例詳解
一、split是什么?
在Java中,split()方法用于分隔字符串,可以根據(jù)匹配給定的正則表達(dá)式來(lái)拆分字符串。split()方法可以將一個(gè)字符串分割為子字符串,然后將結(jié)果作為字符串?dāng)?shù)組返回;語(yǔ)法如下,其中參數(shù)regex指定正則表達(dá)式分隔符,limit指定分割的份數(shù)。分隔符可以是任意字符、符號(hào)、數(shù)字、字符串等。
stringInfo.split([regex,[limit]])
二、特殊字符處理
1.案例
private String data = "6&三-1號(hào)柜^7&三-2號(hào)柜^8&客服中心";
字符串轉(zhuǎn)成 List數(shù)組 數(shù)組中包括 id 跟名字
這里就涉及到了特殊字符分割,如果按照傳統(tǒng)分割 data.split("^"); 輸出結(jié)果還是 字符串本身,所以在涉及到特殊字符分割的時(shí)候要前面要加上轉(zhuǎn)義符
String data = "6&三-1號(hào)柜^7&三-2號(hào)柜^8&客服中心";
List<Pair<String, String>> list = new ArrayList<>();
String[] elements = data.split("\\^");
for (String element : elements) {
String[] parts = element.split("&");
String id = parts[0];
String name = parts[1];
list.add(new Pair<>(id, name));
}還有一種涉及到多符號(hào)分割,這種情況下不到要加上轉(zhuǎn)義符 還要借助分割符處理、
String address="北京^北京市@海淀區(qū)#四道街";
String address = "北京^北京市@海淀區(qū)#四道街";
String[]splitAddress=address.split("\\^|@|#");
System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]+splitAddress[3]);附:Java在split()時(shí),需要轉(zhuǎn)義的幾個(gè)字符:
或'|',點(diǎn)'.',加'+',乘'*',在字符串中出現(xiàn)時(shí),如果這個(gè)字符串需要被拆分,則拆分時(shí)候,需要在前面加兩個(gè)反斜杠。
與&,在分裂時(shí)候,不需要轉(zhuǎn)義。
用多個(gè)不同符號(hào)分割示例代碼:用 '!' , '.' ,空格三個(gè), '@' 來(lái)分割字符串
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// TODO 自動(dòng)生成的方法存根
String str="czh!han.bb test@love";
//用'!','.',空格三個(gè),'@'來(lái)分割字符串
String[] a=str.split("\\s+|\\.|\\!|@");
System.out.println(Arrays.toString(a));
}
}輸出如下:
注意上面的bb和test之間是三個(gè)空格,\\s后面用了+,就將這多個(gè)空格看作一個(gè)分隔符了!@不是那幾種需要轉(zhuǎn)義的字符之一,就不用加\\了!
[czh, han, bb, test, love]
總結(jié)
split即正則表達(dá)式。特殊符號(hào)有 | + * ^ $ / | [ ] ( ) - . \ 等,因?yàn)樗鼈兪钦齽t表達(dá)式中的一部分, 所以如果想用該字符本身,必須使用轉(zhuǎn)義符即\\加以轉(zhuǎn)義才能表示它本身
到此這篇關(guān)于Java split()方法中的特殊符號(hào)的文章就介紹到這了,更多相關(guān)Java split()方法特殊符號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring學(xué)習(xí)筆記1之IOC詳解盡量使用注解以及java代碼
這篇文章主要介紹了Spring學(xué)習(xí)筆記1之IOC詳解盡量使用注解以及java代碼 的相關(guān)資料,需要的朋友可以參考下2016-07-07
阿里面試Nacos配置中心交互模型是push還是pull原理解析
這篇文章主要為大家介紹了阿里面試Nacos配置中心交互模型是push還是pull原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
Java堆空間爆滿導(dǎo)致宕機(jī)的問(wèn)題分析及解決
團(tuán)隊(duì)有一個(gè)服務(wù),一直運(yùn)行的好好的,突然訪問(wèn)異常了,先是請(qǐng)求超時(shí),然后直接無(wú)法訪問(wèn),本文將給大家介紹Java堆空間爆滿導(dǎo)致宕機(jī)的問(wèn)題分析及解決,需要的朋友可以參考下2024-02-02
詳解高性能緩存Caffeine原理及實(shí)戰(zhàn)
Caffeine是基于Java 8開(kāi)發(fā)的,提供了近乎最佳命中率的高性能本地緩存組件,Spring5開(kāi)始不再支持Guava Cache,改為使用Caffeine。Caffeine提供的內(nèi)存緩存使用參考Google guava的API2021-06-06
springboot多租戶設(shè)計(jì)過(guò)程圖解
這篇文章主要介紹了springboot多租戶設(shè)計(jì)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
基于Java和FFmpeg實(shí)現(xiàn)視頻壓縮和剪輯功能
在視頻處理開(kāi)發(fā)中,壓縮和剪輯是常見(jiàn)的需求,本文將介紹如何使用 Java 結(jié)合 FFmpeg 實(shí)現(xiàn)視頻壓縮和剪輯功能,同時(shí)去除數(shù)據(jù)庫(kù)操作,僅專注于視頻處理,需要的朋友可以參考下2025-08-08

