判断字符是否是除了 @ —— , ? “” | ~ % * !之外的其他符号?
[b]问题补充:[/b]
[^@——,?“”|~%*!]我试了一下好像不可以,下面是我测试大妈
[code="java"]
public boolean checkNameReg(String str) {
String badword = "[^@——,?“”|~%*!]";
Pattern pattern = Pattern.compile(badword);
Matcher matcher = pattern.matcher(str);
return !matcher.find();
}
[/code]
结果写错,不好意思.
刚才代码的结果如下:
[code="java"]str match result:false
str match result:true[/code]
如果只是判断单个字符的话,不用那么复杂吧,简单点
把几个符号并成数组,然后用数组的contains方法判断,或者把这些字符合并成一个字符串,然后用字符串的indexOf来判断。
如果是字符串再考虑正则吧,可以简单的用否
[^@|^_|^,|^?] 这样
[^@——,?“”|~%*!] it's okay.
不是吧. 本着科学的精神,我测试了一把;
代码如下:
[code="java"]import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class testMatch2{
public static boolean checkNameReg(String str) {
String badword = "[^@——,?“”|~%*!]";
Pattern pattern = Pattern.compile(badword);
Matcher matcher = pattern.matcher(str);
return matcher.find();
}
public static void main(String[] args){
String str = "@——";
System.out.println("str match result:"+checkNameReg(str));
String str2 = "开始";
System.out.println("str match result:"+checkNameReg(str2));
}
}[/code]
结果:
[code="java"]str match result:true
str match result:true[/code]