我有一个Map<Character, String>
已经基于for循环获取键(字符)的值。现在,我该如何浏览这张地图并检查地图中是否有某个键(例如'A'或'a'[因为不区分大小写]),然后将我想要的值(例如4)添加到该键中(以便从“ A =“变成“ A = 4”)?
我希望我的问题很清楚
这是我目前的代码:
public static Map<Character, String> replacings(String s) {
Map<Character, String> leetMap = new TreeMap<>();
for(int i = 1; i < s.length(); i++) {
if(s.charAt(i) == '=') {
leetMap.put(s.charAt(i - 1), "");
leetMap.put(s.toLowerCase().charAt(i - 1), "");
}
}
for(int j = 0; j < leetMap.size(); j++) {
//look for the key here and then add a value to it [my problem]
}
return leetMap;
}
到目前为止我的主要方法(示例):
Map<Character, String> mappings = replacings(
"A=4,B=8,E=3,G=6,L=1,O=0,S=5,T=7,Z=2,"
);
所以现在,我想将数字添加到键中。
您可以entrySet
像下面这样遍历地图:
for(Map.Entry<Character, String> entry : leetMap.entrySet()) {
if(e.getKey() == 'A') {
//things
}
}
但是真正的问题是,为什么要让这种情况发生在不同的循环中?为什么在添加键时不将值同时添加到地图上?
我的尝试如下所示:
private static Map<Character, String> replacings(String s) {
Map<Character, String> leetMap = new TreeMap<>();
String[] splitted = s.split(",");
for (String kv : splitted) {
String[] kvsplit = kv.split("=");
leetMap.put(kvsplit[0].charAt(0), kvsplit[1]);
leetMap.put(kvsplit[0].toLowerCase().charAt(0), kvsplit[1]);
}
return leetMap;
}
打印:
{A=4, B=8, E=3, G=6, L=1, O=0, S=5, T=7, Z=2, a=4, b=8, e=3, g=6, l=1, o=0, s=5, t=7, z=2}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句