我有一个包含以下值的String[]
:
public static final String[] VALUES = new String[] {"AB","BC","CD","AE"};
给定字符串 s
,是否有一种好的方法来测试 VALUES
是否包含 s
?
import java.util.Arrays;
public class ArrayContainsValueExample {
public static void main(String[] args) {
String[] fruits = {"apple", "banana", "orange", "kiwi", "grape"};
boolean containsOrange = Arrays.stream(fruits)
.anyMatch("orange"::equals);
if (containsOrange) {
System.out.println("The array contains 'orange'");
} else {
System.out.println("The array does not contain 'orange'");
}
}
}
fruits
的String类型数组。我们使用Arrays.stream()
方法创建一个数组元素的流。然后我们调用anyMatch()
方法来检查流中是否有任何元素与值"orange"
匹配。如果有任何元素与该值匹配,anyMatch()
方法将返回true
,表示数组包含该值。如果没有任何元素与该值匹配,anyMatch()
方法将返回false
,表示数组不包含该值。anyMatch()
方法是短路操作,也就是说一旦找到匹配项,它就会停止处理流。这使得它对于大型数组非常高效,因为它不需要处理所有的元素。.contains
方法检查所需的字符串。String a = Arrays.toString(VALUES);
System.out.println(a.contains("AB"));
System.out.println(a.contains("BC"));
System.out.println(a.contains("CD"));
System.out.println(a.contains("AE"));
B) 这是一种更有效的方法
Scanner s = new Scanner(System.in);
String u = s.next();
boolean d = true;
for (int i = 0; i < VAL.length; i++) {
if (VAL[i].equals(u) == d)
System.out.println(VAL[i] + " " + u + VAL[i].equals(u));
}
java.util.Arrays
中找到一个简单的indexOf
和contains
,它们都包含直接的循环。是的,你可以在1分钟内编写它们;但我仍然去了StackOverflow,期望在JDK的某个地方找到它们。 - tucuxi