在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
}
另一种选择,使用提供方法的事实:String
contains()
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...
}