Arrays.asList returns 错误
Arrays.asList returns false
我只想检查我的 String[] 数组是否包含 "n" 或 "s"。
String[] coordinatesExample = {"57.8136°s", "28.3496°e"};
private void isContains(String[] coordinates) {
boolean contains = Arrays.asList(coordinates).contains("s");
if (contains) {
System.out.println("It works!");
}else {
System.out.println("RAKAMAKAFO");
}
所以我预计:"It works!",但是
事实上:"RAKAMAKAFO"
我做错了什么?
当您执行 Arrays.asList(coordinates)
时,您会得到包含两项的列表:57.8136°s
和 28.3496°e
。所以使用 .contains("s")
你测试你的任何项目是否是 "s" 显然不是这种情况。
您当前的解决方案只有在您有这样的字符串数组时才有效:
String[] coordinatesExample = {"57.8136°s", "28.3496°e", "s"};
如果您想检查数组中的任何字符串是否包含 "n" 或 "s".
,请试试这个
private static void isContains(String[] coordinates) {
boolean contains = Arrays.stream(coordinates)
.anyMatch(coordinate -> coordinate.contains("s") || coordinate.contains("n"));
if (contains) {
System.out.println("It works!");
} else {
System.out.println("RAKAMAKAFO");
}
}
仅包含检查列表是否包含 s
不存在的元素之一。
来自 List
接口的 JavaDoc
boolean contains(Object o)
Returns true if this list contains the specified element. More formally, returns true if and only if this list contains at least one element e such that Objects.equals(o, e).
如果您执行以下操作,它将 return 打印 It works!
因为列表中的 first string
包含一个 s
private static void isContains(String[] coordinates) {
boolean contains = Arrays.asList(coordinates).get(0).contains("s");
if (contains) {
System.out.println("It works!");
}else {
System.out.println("RAKAMAKAFO");
}
}
}
我只想检查我的 String[] 数组是否包含 "n" 或 "s"。
String[] coordinatesExample = {"57.8136°s", "28.3496°e"};
private void isContains(String[] coordinates) {
boolean contains = Arrays.asList(coordinates).contains("s");
if (contains) {
System.out.println("It works!");
}else {
System.out.println("RAKAMAKAFO");
}
所以我预计:"It works!",但是 事实上:"RAKAMAKAFO"
我做错了什么?
当您执行 Arrays.asList(coordinates)
时,您会得到包含两项的列表:57.8136°s
和 28.3496°e
。所以使用 .contains("s")
你测试你的任何项目是否是 "s" 显然不是这种情况。
您当前的解决方案只有在您有这样的字符串数组时才有效:
String[] coordinatesExample = {"57.8136°s", "28.3496°e", "s"};
如果您想检查数组中的任何字符串是否包含 "n" 或 "s".
,请试试这个private static void isContains(String[] coordinates) {
boolean contains = Arrays.stream(coordinates)
.anyMatch(coordinate -> coordinate.contains("s") || coordinate.contains("n"));
if (contains) {
System.out.println("It works!");
} else {
System.out.println("RAKAMAKAFO");
}
}
仅包含检查列表是否包含 s
不存在的元素之一。
来自 List
接口的 JavaDoc
boolean contains(Object o)
Returns true if this list contains the specified element. More formally, returns true if and only if this list contains at least one element e such that Objects.equals(o, e).
如果您执行以下操作,它将 return 打印 It works!
因为列表中的 first string
包含一个 s
private static void isContains(String[] coordinates) {
boolean contains = Arrays.asList(coordinates).get(0).contains("s");
if (contains) {
System.out.println("It works!");
}else {
System.out.println("RAKAMAKAFO");
}
}
}