如何在Java中验证字符串?即只允许字符而不是数字?电子邮件验证怎么样?
答案 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 email和Comparing 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()
来完成。