❶ java用正則表達式判定特殊字元是否,存在就替換的問題
至少有兩種正則表達式的方法:
1、直接調用String類的replaceAll(String regex, String replacement)方法
代碼:
String ss = "aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp";
ss.replaceAll("[\\[\\]\\{\\}]", "");//返回結果,可列印或返回
優點:簡單
缺點:不具有通用性,需求變動則不適用,例如[{dd}]替換成DD
2、通過匹配規則來截取字元串
代碼:
String ss = "aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp";
//正則表達式,表示由非[、]、{、}的任意字元構成
String tmp = "[^\\[^\\{^\\]^\\}.]";
//正則表達式,由5組構成第一組是普通字元串,第二組是"[{"字元串,第三組是普通字元串,第四組是"}]"字元串,第五組是普通字元串
Pattern pattern = Pattern.compile("(" + tmp + "*)(\\[\\{)(" + tmp + "*)(\\}\\])(" + tmp + "*)");
Matcher matcher = pattern.matcher(ss);
StringBuffer result = new StringBuffer();
while(matcher.find()) {
result.append(matcher.group(1) + matcher.group(3) + matcher.group(5));
}
//result就是最終結果。
優點:具有一定的通用性,可自己定製需要的字元串,新字元串可以由原字元串的部分組成,也可與其他字元拼裝,能更好滿足可重用性,例如需求變更成[{dd}]替換成DD,代碼只需將result.append(matcher.group(1)+matcher.group(3)+matcher.group(5));換成result.append(matcher.group(1)+matcher.group(3).toUpperCase()+matcher.group(5));就能完成
缺點:代碼較長
PS:StringBuffer可轉化成String再返回
❷ java如何判斷一個字元串中是否包含標點符號(任意標點符號,非特定)
1、在程序中需要引入hutool的jar包。
❸ java判斷字元串中是否包含特定字元串
java判斷字元串中包含特定字元串方法:
使用正則表達式進行判斷。
源代碼:
publicclassTest{
publicstaticvoidmain(String[]args){
Stringstr="HelloWorld";//待判斷的字元串
Stringreg=".*ll.*";//判斷字元串中是否含有特定字元串ll
System.out.println(str.matches(reg));
}
}
❹ java字元串中包含多少特定字元
java判斷字元串中包含特定字元串方法:
使用正則表達式進行判斷。
源代碼:
public class Test {
public static void main(String[] args) {
String str="Hello World"; //待判斷的字元串
String reg=".*ll.*"; //判斷字元串中是否含有特定字元串ll
System.out.println(str.matches(reg));
}
}
❺ java正則表達式如何判斷字元串中是否含有特殊字元
public class Test2 {
public static void main(String[] args){
String s = "123asdqwe__123 rew-trafgds";
if(s.replaceAll("[a-z]*[A-Z]*\\d*-*_*\\s*", "").length()==0)
System.out.println("input correct");
else
System.out.println("input incorrect");
}
}