2010-09-17 85 views
6

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

+4

你可能会看看正则表达式:http://download.oracle.com/javase/tutorial/essential/regex/ – MatrixFrog 2010-09-17 05:20:50

回答

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._%+-][email protected][a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$")) 
     return false; 

    return true; 
} 
+1

检查一个空字符串或修剪它真的没有意义,因为你可以照顾那些正则表达式。 – NullUserException 2010-09-17 05:41:18

+0

我同意NUE – jsshah 2010-09-17 05:57:43

+0

'trim'应该在空检查之后完成......否则你会抛出NullPointerException ... – st0le 2010-09-17 08:08:53

7

如何字符串可以用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._%+-][email protected][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

4

对于简单的情况下,像那个,去与正则表达式为NullUserException已经建议。如果您需要更强大的解决方案,您可以使用一些验证框架,即Apache Commons Validator