在Java中,如何确定char数组是否包含特定字符?

2022-09-02 02:53:17

以下是我所拥有的:

char[] charArray = new char[] {'h','e','l','l','o'};

我想写一些东西,大意是:

if(!charArray contains 'q'){
     break;
}

我意识到.contains()不能在这里使用。我只是使用“包含”来说明我想要做的事情。


答案 1

以下代码段测试“不包含”条件,如问题中的示例伪代码所示。对于具有显式循环的直接解决方案,请执行以下操作:

boolean contains = false;
for (char c : charArray) {
    if (c == 'q') {
        contains = true;
        break;
    }
}
if (!contains) {
    // do something
}

另一种选择,使用提供方法的事实:Stringcontains()

if (!(new String(charArray).contains("q"))) {
    // do something
}

还有另一种选择,这次使用:indexOf()

if (new String(charArray).indexOf('q') == -1) {
    // do something
}

答案 2

此方法可以解决问题。

boolean contains(char c, char[] array) {
    for (char x : array) {
        if (x == c) {
            return true;
        }
    }
    return false;
}

用法示例:

class Main {

    static boolean contains(char c, char[] array) {
        for (char x : array) {
            if (x == c) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] a) {
        char[] charArray = new char[] {'h','e','l','l','o'};
        if (!contains('q', charArray)) {
            // Do something...
            System.out.println("Hello world!");
        }
    }

}

替代方式:

if (!String.valueOf(charArray).contains("q")) {
    // do something...
}