首页 > 解决方案 > 使用特定关键字 Java 定位字符串数组中的特定部分

问题描述

我试图创建一个方法,该方法将接受一个字符串(名称)并通过这个数组并只保留那个特定的行。我无法更改此信息的存储方式,因为很多代码都基于这种安排。

我想输入“mike”,它会删除数组的所有其他部分,然后把那一行还给我。

private static final String[][] MsgKeys =
            {
                    {"mike", "75", "up"},
                    {"john", "15", "up"},
                    {"eric", null, "left"},
                    {"mark", null, "right"},
                    {"chris", "87", "up"},
                    {"shawn", null, "left"},
                    {"blake", "67", "left"},
                    {"bentley", null, "right"}
        }

标签: javaarraysstring

解决方案


如其他答案所述,您不应从 中删除元素array,但您可以使用以下命令找到该行stream

public static String[] findRow(String name, String[]... array) {
    return Arrays.stream(array)
            .filter(row -> Objects.equals(row[0], name))
            .findAny().orElse(null);
}

然后你可以这样做:

String[] row = findRow("mike", MsgKeys);

System.out.println(Arrays.toString(row));

输出:

[mike, 75, up]

推荐阅读