检查字符串是否仅包含一组字母

user1578012:

我正在尝试检查一个单词是否仅包含一组字母,例如I,O,S,H和X假设用户输入:SSHX,输出将为yes,但是如果用户输入SHEXX,则输出将为NO

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    String word = sc.next();
    word = word.toUpperCase();

    int length = word.length();
    char letter = 0;

    for (int counter = 0; counter < length; counter++) {
        letter = word.charAt(counter);
    }
    if (letter != 'I' && letter != 'O' && letter != 'S' && letter != 'H' && letter != 'Z' && letter != 'X' && letter != 'N') {
        System.out.print("NO");
    } else {
        System.out.print("YES");
    }
}
ddmps:

您有解决它的好方法。问题是您实际上并没有检查每个字母,因此您需要在for循环内进行检查,否则您将只检查最后一个字母。但是那样就无法打印“ YES”,因为仅在所有字母均为“ YES”时才打印它,因此您也可以使用布尔值来检查它,例如:

    boolean isMatch = true; 
    for (int counter = 0; counter < strLength && isMatch; counter++) {
        letter = word.charAt(counter);
        if (letter != 'I' && letter != 'O' && letter != 'S' && letter != 'H' && letter != 'Z' && letter != 'X' && letter != 'N') {
            System.out.print("NO");
            isMatch = false;
        } 
    }
    if (isMatch) {
        System.out.print("YES");
    }

但是,正如其他人指出的那样,使用正则表达式会更有效(并且该正则表达式可以满足您想要的正则表达式。星号表示括号内的零个或多个。):

    if (word.matches("[HIOSX]*")) {
        System.out.print("YES");
    } else {
        System.out.print("NO");
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查字符串是否仅包含字母和空格?

如何检查字符串是否仅包含ASCII?

检查字符串是否包含字母

检查字符串是否仅包含非字母数字字符

检查字符串在JavaScript中是否仅包含字母

检查字符串是否仅包含空格

如何在Go中检查字符串是否仅包含字母字符?

检查字符串是否仅包含给定字符

检查字符串是否仅包含字母,数字和下划线

检查字符串是否仅包含ASCII字符?

如何检查字符串是否仅包含小写字母和数字?

检查字符串是否仅包含这些字符{([])}

检查字符串是否仅包含小写字母和符号

JavaScript检查字符串中是否包含字母

检查字符串是否仅包含允许的字符

检查字符串是否包含php中的字母

如何检查字符串是否包含字母

检查字符串是否包含字母数字

如何使用Regex检查字符串是否包含给定的一组字符(不考虑顺序)?

如何检查字符串是否仅包含英文字母?

检查字符串是否在组中包含字符

检查字符串是否包含一组不工作的字符集

检查字符串是否包含一组其他字符串

检查字符串是否仅包含字符 > 或 < 或 -

如何检查字符串的某个部分是否在 Python 中的一组字符串中?

检查字符串是否只包含字母

XSLT:检查字符串是否包含来自另一组节点的任何值

Javascript:检查字符串是否仅包含字母、数字、空格和特定符号

检查字符串常量是否包含在一组字符串中