有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

regex如何检查字符串是否包含指定字符以外的字符。(爪哇语)

我有一个程序,要求用户输入一个三个字符的字符串。字符串只能是a、b或c的组合

如何在不执行一百万条条件语句的情况下检查字符串是否包含指定字符以外的字符

伪示例:

String s = "abq"

if (s.containsOtherCharacterThan(a,b,c))
    System.exit(-1)

共 (5) 个答案

  1. # 1 楼答案

    可以使用以下正则表达式:-[abc]+

  2. # 2 楼答案

    要查找不是a、b或c的字符,请使用以下命令:

    if(!s.matches("[abc]+"))
    {
        System.out.println("The string you entered has some incorrect characters");
    }
    
  3. # 3 楼答案

    可以使用regex及其character classes。只要在你想要检查的字符串上调用^{},看看它是否可以完全由正则表达式匹配

    if (!s.matches("[abc]+")) {//..
    

    这个测试应该只通过包含其他字符的字符串,这些字符在[{}中指定,因此"abq"应该通过测试,因为它包含q。匹配项将检查s是否只包含abc个字符。如果没有,它将返回false,由于否定,我们将进入If块

  4. # 4 楼答案

    没有正则表达式的一种方法是在字符串中循环并检查每个字符,如果字符不是A、b或c,则退出。仅使用字符串是没有办法的。包含

  5. # 5 楼答案

    你可以把字符串分割成一个数组,然后循环输入,然后比较每个字符

    public boolean containsOtherCharacter(String s, String a, String b, String c) {
        String[] st = s.split("");
        for(int x = 0; x < st.length; x++)
            if (st[x].compareTo(a) != 0 && st[x].compareTo(b) != 0 && st[x].compareTo(c) != 0)
                return true;
        return false;
    }
    

    这将告诉你是否还有其他角色。如果想知道它们是哪些字符,可以将每个字符插入HashMap,其中键是字符,值是使用的次数