❶ 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");
}
}