我正在编写一个脚本,用于创建从用户昵称到用户 ID 的映射:
// Get client informations to map
for (Client c : api.getClients()) {
teamspeakUserInfos.put(c.getNickname(), c.getId());
}
映射示例:
Nickname | 5
Username | 2
John |12
这是我用于检查 map 中关键位置的代码:
if (teamspeakUserInfos.containsKey(genUserNickname())) {
victimTeamspeakID = teamspeakUserInfos.get(genUserNickname());
break;
}
genUserNickname()
可以返回大写、小写或混合大小写的昵称。
我现在的问题是,如何检查该昵称是否用作 key - 同时忽略大小写差异?
提前谢谢您!
最佳答案
你可以做类似的事情:
public class ContainsKeyIgnoreCase {
public static void main(String[] args) {
Map<String, Integer> userInfo = new HashMap<String, Integer>();
userInfo.put("nickNamE", 1);
String nickName = "NiCKname";
System.out.println(containsKeyIgnoreCase(userInfo, nickName));
}
public static boolean containsKeyIgnoreCase(Map<String, Integer> map, String lookupKey) {
return map.keySet()
.stream()
.map(key -> key.equalsIgnoreCase(lookupKey))
.reduce(false, Boolean::logicalOr);
}
}
关于Java - 映射键查找忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53768688/