【发布时间】:2012-03-22 09:27:23
【问题描述】:
可能重复:
JAVA: check a string if there is a special character in it
我正在尝试创建一种方法来检查密码是否以特殊字符开头或结尾。我已经设法编写了一些其他检查,但这似乎有点复杂。
我认为我需要使用正则表达式来有效地做到这一点。我已经创建了一个方法来检查是否有任何特殊字符,但我不知道如何修改它。
Pattern p = Pattern.compile("\\p{Punct}");
Matcher m = p.matcher(password);
boolean a = m.find();
if (!a)
System.out.println("Password must contain at least one special character!");
根据我正在阅读的书,我需要在模式中使用 ^ 和 $ 来检查它是否以特殊字符开头或结尾。我可以将这两个语句都添加到现有模式中吗?或者我应该如何开始解决这个问题?
编辑:
好的,我想我得到了非正则表达式的方法:
for (int i = 0; i < password.length(); i++) {
if (SPECIAL_CHARACTERS.indexOf(password.charAt(i)) > 0)
specialCharSum++;
}
【问题讨论】: