检查字符串是否只包含字母空格和引号(最好不包含正则表达式)

时间:2016-02-27 18:34:37

标签: java string

我正在尝试检查字符串中是否只包含字母(包括大写和小写),空格和引号(包括double和single)。我无法想出一个优雅的方式来做到这一点。我唯一能想到的就是制作一个允许的字符列表,并检查字符串的每个字符是否都在该列表中。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

str.matches("[a-zA-Z\\s\'\"]+");

你说最好没有REGEX,但你想要一种优雅的方式。在我看来,这将是一种简单,简洁和优雅的方式来获得你想要的东西。

答案 1 :(得分:0)

如果您不想要REGEX,可以在字符串中逐个字符地检查:

public static boolean onlyLetterSpaceQuotes(String str){
    for(int x=0; x<str.length(); x++){
        char ch = str.charAt(x);
        if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch == ' ' 
            || ch == '\'' || ch == '\"'))
            return false;               
    }
    return true;            
}

<强>测试

System.out.println(onlyLetterSpaceQuotes("abc \"A\'BC"));
System.out.println(onlyLetterSpaceQuotes("abc \"A\'BC123")); 

<强>输出:

true
false