如何检查一个字符串是否是纯字母?

问题描述:

我想在JTextField上运行验证检查以确保它只包含字母。什么是最简单的方法来做到这一点?如何检查一个字符串是否是纯字母?

+1

正则表达式。 – jonny2k9 2013-04-09 21:36:15

+0

另请参见['DocumentListener'](http://docs.oracle.com/javase/7/docs/api/javax/swing/event/DocumentListener.html)&['JFormattedTextField'](http:// docs .oracle.com/JavaSE的/ 7 /文档/ API /的javax /摆动/ JFormattedTextField.html)。 – 2013-04-10 00:10:32

您可以使用matches

str.matches("\\p{Alpha}+") 

注意\p{Alpha}匹配任何字母(a-zA-Z),因此\p{Alpha}+匹配任何字母连续字符串。

+0

这是否适用于unicode? – MStodd 2013-04-09 21:40:34

+0

这看起来非常简洁,因此非常适合我的需求。我在哪里可以了解更多关于“\\ p {Aplha} +”语法的内容,以便我能够理解这一切实际上意味着什么?我可以复制和粘贴,但我不会真的能够学习。 – Mike 2013-04-09 21:58:54

+0

@Mike ['Pattern'](http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)类的文档包含一些特定信息,但您可能会想查找关于“正则表达式”的教程。 – arshajii 2013-04-09 22:38:55

试试这个:

public boolean containsOnlyLetters(String s) 
{ 
    for(char c : s.toCharArray()) 
    { 
     if(!Character.isLetter(c)) 
      return false; 
    } 
    return true; 
}