在Java中,如何确定char数组是否包含特定字符?
以下是我所拥有的:
char[] charArray = new char[] {'h','e','l','l','o'};
我想写一些东西,大意是:
if(!charArray contains 'q'){
     break;
}
我意识到.contains()不能在这里使用。我只是使用“包含”来说明我想要做的事情。
以下是我所拥有的:
char[] charArray = new char[] {'h','e','l','l','o'};
我想写一些东西,大意是:
if(!charArray contains 'q'){
     break;
}
我意识到.contains()不能在这里使用。我只是使用“包含”来说明我想要做的事情。
以下代码段测试“不包含”条件,如问题中的示例伪代码所示。对于具有显式循环的直接解决方案,请执行以下操作:
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
}
						此方法可以解决问题。
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...
}