如何在Java中验证字符串?

时间:2010-09-17 05:17:15

标签: java string validation

如何在Java中验证字符串?即只允许字符而不是数字?电子邮件验证怎么样?

4 个答案:

答案 0 :(得分:10)

  

如何在java中验证字符串?

一种常见的方法是使用正则表达式或正则表达式。在Java中,您可以使用String.matches(String regex)方法。使用正则表达式,我们说您将字符串与模式匹配如果匹配成功,.matches()将返回true。


  

只允许使用字符,而不是数字?

// You can use this pattern:
String regex = "^[a-zA-Z]+$";
if (str.matches(regex)) { 
    // ...
}
  

电子邮件验证?

电子邮件地址有very complicated spec,这需要一个可怕的正则表达式才能准确。这个很好,很短,但不完全正确:

String regex = "\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b";
if (str.matches(regex)) { 
    // ...
}

如果你真的想调查一下:How to validate emailComparing email validating regexes(PHP)。


这是开始使用正则表达式的绝佳资源:
http://www.regular-expressions.info

答案 1 :(得分:5)

表示只包含字符的字符串

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;
}

答案 2 :(得分:4)

对于像这样的简单情况,请使用RegExp作为已建议的NullUserException。如果您需要更强大的解决方案,可以使用一些验证框架,即Apache Commons Validator

答案 3 :(得分:1)

如果您将Apache commons-lang作为项目依赖项(这很常见),则可以使用StringUtils.isAlpha()。如果您有更具体的验证或者不希望依赖于commons-lang,则可以使用正则表达式和String.matches()来完成。