如何在Java中验证字符串?即仅允许字符而不允许数字?那电子邮件的验证呢?
如何在Java中验证字符串?即仅允许字符而不允许数字?那电子邮件的验证呢?
如何在Java中验证字符串?
一种常见的方法是使用正则表达式。在Java中,您可以使用String.matches(String regex)
方法。使用正则表达式时,我们会说将字符串与一个“模式”匹配。如果匹配成功,则.matches()
返回true。
只允许使用字符,不允许使用数字吗?
// You can use this pattern:
String regex = "^[a-zA-Z]+$";
if (str.matches(regex)) {
// ...
}
电子邮件验证?
电子邮件地址有一个非常复杂的规范, 需要一个巨大的正则表达式来确保准确性。下面这个正则表达式较短,但并不完全正确:
String regex = "\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b";
if (str.matches(regex)) {
// ...
}
如果您真的想了解它:如何验证电子邮件和比较电子邮件验证正则表达式(PHP)。
这是一个很好的资源,可以帮助你开始学习正则表达式:
http://www.regular-expressions.info
对于仅包含字符的字符串,请尝试使用以下方法:
private boolean verifyLastName(String lname)
{
lname = lname.trim();
if(lname == null || lname.equals(""))
return false;
if(!lname.matches("[a-zA-Z]*"))
return false;
return true;
}
如果需要进行电子邮件验证,请尝试以下方法:
private boolean verifyEmail(String email)
{
email = email.trim();
if(email == null || email.equals(""))
return false;
if(!email.matches("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$"))
return false;
return true;
}
trim
应该在空值检查之后进行...否则会抛出 NullPointerException 异常... - st0le对于像这样简单的情况,可以采用NullUserException建议的RegExp。如果您需要更强大的解决方案,可以使用一些验证框架,例如Apache Commons Validator。
StringUtils.isAlpha()
。如果您需要更具体的验证或不想依赖于commons-lang,则可以使用正则表达式和String.matches()
来完成。