首页 > 解决方案 > Arrays.asList 返回 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");
        }

所以我期待:“它有效!”,但实际上:“RAKAMAKAFO”

我做错了什么?

标签: javastringarraylistcontains

解决方案


只有当您有这样的字符串数组时,您当前的解决方案才有效:

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");
    }
}

推荐阅读