最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中如何取出String字符串括號中的內(nèi)容

 更新時(shí)間:2023年05月26日 10:34:40   作者:cts618  
這篇文章主要介紹了Java中如何取出String字符串括號中的內(nèi)容問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java取出String字符串括號中的內(nèi)容

package com.cnic.flink.etl.test;
import java.util.HashMap;
import java.util.Map;
public class Map2Bean {
    public static void main(String[] args) {
        String str = "[tid:2656,Q:W183CWbcBewrSgccJOdw] ";
        //String substring = str.substring(0, 10);
        //System.out.println(substring);
        //String sub001 = str.substring(0 ,10);
        //System.out.println(sub001);
        //int i = str.indexOf("[", "]");
        String substring = str.substring(str.indexOf("[")+1, str.indexOf("]"));
        System.out.println(substring);
        HashMap<String, String> map = new HashMap<String, String>();
    }
}

Java解析括號內(nèi)子字符串的內(nèi)容

問題描述

假設(shè)String input = "test data (測試)",現(xiàn)在需要獲取括號內(nèi)的測試字串。

也有可能給定字符串包括多個(gè)括號組:

String input = "test data (測試)(data)" ,解析結(jié)果為:測試 和 data 。

多種方式實(shí)現(xiàn)

1.直接定位

我們首先想到的直接使用 String的indexOf方法進(jìn)行定位:

String input = "test data (測試)";
String output = input.substring(input.indexOf("(") + 1 ,input.indexOf(")"));
log.info("output={}", output);

這種方法缺少靈活性,當(dāng)有多個(gè)括號時(shí)不支持。

2.正則方式

下面使用正則進(jìn)行解析,支持多個(gè)括號組:

? ? String input = "test data (測試)(data)";
? ? String pattern = "\\(([^\\)]+)\\)";
? ? Matcher matcher = Pattern.compile(pattern).matcher(input);
? ? while (matcher.find()) {
? ? ? ? String output = matcher.group(1);
? ? ? ? log.info("output={}", output);
? ? }

正則解釋:

  • \\(: 表示字符(
  • (: 開始匹配組
  • [: 中括號表示可選內(nèi)容
  • ^: 表示不是后續(xù)字符
  • ): 在前面加上 ^, 表示除了 “ )” 的所有字符
  • +: 表示1個(gè)或多個(gè)[]括號內(nèi)的字符集
  • ): 停止匹配組
  • \\): 表示關(guān)閉括號

如果明確知道有幾個(gè)括號也可以簡化:

String input = "test data (測試)data";
String [] outs = input.split("[\\(\\)]");
log.info(outs[1]);

3.第三方庫

這里使用 org.apache.commons.lang3包中的StringUtils工具包,它提供了類似的實(shí)現(xiàn):

String input0 = "test data (測試)";
String input1 = "test data (測試)(data)";
String output = StringUtils.substringBetween(input, "(", ")");
String [] out = StringUtils.substringsBetween(input1,"(", ")");

同時(shí)支持單個(gè)括號或多個(gè)括號組,且括號作為參數(shù),使用簡單不失靈活。

心得:

以上介紹了Java幾種方式解析字符串中包括括號內(nèi)的子字符串內(nèi)容。直接使用Java String內(nèi)置方法定位,使用正則表達(dá)式以及第三方庫進(jìn)行解析。 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • restTemplate發(fā)送get與post請求并且?guī)?shù)問題

    restTemplate發(fā)送get與post請求并且?guī)?shù)問題

    這篇文章主要介紹了restTemplate發(fā)送get與post請求并且?guī)?shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java排序算法總結(jié)之插入排序

    Java排序算法總結(jié)之插入排序

    這篇文章主要介紹了Java排序算法總結(jié)之插入排序,較為詳細(xì)的分析了插入排序的原理與java實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • IDEA 2019.2.2配置Maven3.6.2打開Maven項(xiàng)目出現(xiàn) Unable to import Maven project的問題

    IDEA 2019.2.2配置Maven3.6.2打開Maven項(xiàng)目出現(xiàn) Unable to import Maven

    這篇文章主要介紹了IDEA 2019.2.2配置Maven3.6.2打開Maven項(xiàng)目出現(xiàn) Unable to import Maven project的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題

    Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題

    這篇文章主要介紹了Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Mybatis?resultMap標(biāo)簽繼承、復(fù)用、嵌套方式

    Mybatis?resultMap標(biāo)簽繼承、復(fù)用、嵌套方式

    這篇文章主要介紹了Mybatis?resultMap標(biāo)簽繼承、復(fù)用、嵌套方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java服務(wù)不可用問題排查和解決

    Java服務(wù)不可用問題排查和解決

    作為一名 java 開發(fā)者,經(jīng)常會遇到服務(wù)不可用的問題排查,導(dǎo)致問題的原因可能是多種多樣的,但是在預(yù)先不知道是什么原因?qū)е碌姆?wù)不可用的時(shí)候,通用的排查手段和流程是相似的,故本文給大家介紹了Java服務(wù)不可用問題排查方法和解決,需要的朋友可以參考下
    2025-01-01
  • Java程序超時(shí)停止的實(shí)踐方案

    Java程序超時(shí)停止的實(shí)踐方案

    本文探討了多種在Java中控制任務(wù)執(zhí)行時(shí)間的方法,分析了不同方案的優(yōu)缺點(diǎn),介紹了基于時(shí)間循環(huán)控制的基礎(chǔ)實(shí)現(xiàn)及其局限性,詳細(xì)講解了線程中斷機(jī)制,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • SpringBoot使用@SpringBootTest注解開發(fā)單元測試教程

    SpringBoot使用@SpringBootTest注解開發(fā)單元測試教程

    這篇文章主要介紹了SpringBoot使用@SpringBootTest注解開發(fā)單元測試教程,本文通過詳細(xì)的案例過程來說明如何使用該項(xiàng)技術(shù),需要的朋友可以參考下
    2021-06-06
  • 如何將Java對象轉(zhuǎn)換為JSON實(shí)例詳解

    如何將Java對象轉(zhuǎn)換為JSON實(shí)例詳解

    有時(shí)候需要將對象轉(zhuǎn)換為JSON格式,所以這篇文章主要給大家介紹了關(guān)于如何將Java對象轉(zhuǎn)換為JSON的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • SpringBoot使用Redisson實(shí)現(xiàn)延遲執(zhí)行的完整示例

    SpringBoot使用Redisson實(shí)現(xiàn)延遲執(zhí)行的完整示例

    這篇文章主要介紹了SpringBoot使用Redisson實(shí)現(xiàn)延遲執(zhí)行的完整示例,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06

最新評論

泌阳县| 桐城市| 五台县| 四川省| 定州市| 读书| 含山县| 含山县| 玉环县| 绩溪县| 张家界市| 昆明市| 扶风县| 谷城县| 三都| 绥江县| 民县| 双鸭山市| 若尔盖县| 普兰店市| 临澧县| 海淀区| 渝北区| 铁力市| 安平县| 栖霞市| 郓城县| 缙云县| 棋牌| 张家口市| 丽江市| 惠安县| 临汾市| 长顺县| 鱼台县| 浏阳市| 浠水县| 体育| 三原县| 怀宁县| 江油市|