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

Java replaceAll()方法報錯Illegal group reference的解決辦法

 更新時間:2020年09月02日 10:14:23   作者:java小強  
這篇文章主要給大家介紹了關(guān)于Java replaceAll()方法報錯Illegal group reference的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

replaceAll(regex, replacement)函數(shù),由于第一個參數(shù)支持正則表達式,replacement中出現(xiàn)“$”,會按照$1$2的分組模式進行匹配。

當(dāng)編譯器發(fā)現(xiàn)“$”后跟的不是整數(shù)的時候,就會拋出“非法的組引用”的異常。

例如,如下代碼會報錯:

public class Test {
	public static void main(String[] args) {
		String str = "123ABC456";
		String re = "#7T$/#";
		System.out.println(str.replaceAll("ABC", re));
	}
}

報錯內(nèi)容:

Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference
 at java.util.regex.Matcher.appendReplacement(Unknown Source)
 at java.util.regex.Matcher.replaceAll(Unknown Source)
 at java.lang.String.replaceAll(Unknown Source)
 at cn.com.vogue.Test.main(Test.java:6) 

解決辦法:

一個是JDK提供的方法,對特殊字符進行處理:

對要替換的字符做處理代碼如下:

re = java.util.regex.Matcher.quoteReplacement(re);

把特殊字符轉(zhuǎn)為特定字符,然后交給接收方處理:

例如將$替換為{ZF4}},當(dāng)然,如果是一家公司做還可以:

String[] strArr = ex.split("\\$");
StringBuffer sb = new StringBuffer();
for(int i=0;i<strArr.length-1;i++){
 sb = sb.append(strArr[i]).append("{ZF4}");
}
sb.append(strArr[strArr.length-1]);
ex = sb.toString();

總結(jié)

到此這篇關(guān)于Java replaceAll()方法報錯Illegal group reference的解決辦法就介紹到這了,更多相關(guān)Java replaceAll()方法報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

佛坪县| 保康县| 齐齐哈尔市| 沙坪坝区| 定陶县| 攀枝花市| 临漳县| 泸西县| 海阳市| 绵竹市| 祁门县| 嘉善县| 高尔夫| 建始县| 东阳市| 进贤县| 泸西县| 保定市| 泸定县| 大新县| 梁山县| 贵德县| 万安县| 鄢陵县| 印江| 阆中市| 九龙城区| 辽阳县| 黄平县| 连平县| 本溪| 简阳市| 茂名市| 彭阳县| 阿拉善右旗| 霍山县| 日喀则市| 中卫市| 东乌| 大荔县| 郓城县|