java - 使用特定关键字 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"}
}
解决方案
如其他答案所述,您不应从 中删除元素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]
推荐阅读
- hadoop - NameNode 在成功返回之前只需要等待块被最小化复制
- ios - 如何将 DeviceMotion 功能添加到 Swift Playground?
- c# - www json api 对字符串的响应
- http - 赛普拉斯已开始在所有 POST 和 PUT XMLHttpRequest 上抛出 417 Expectation Failed 错误
- python - 如何通过将索引作为键来展平包含列表的 dict?
- javascript - 使用 containsIn 解析 JavaScript SDK 订阅
- php - 类哈希不存在 laravel 5.4
- python - 如何 os.chdir(“路径包括非 ascii 字符,如阿拉伯语”)
- kubernetes - 我的 kubernetes 部署无法按预期工作
- excel - 根据最后一个单元格值自动生成 VBA 代码到序列号