【发布时间】:2020-07-01 02:34:42
【问题描述】:
我有一个像下面这样的哈希图,
static Map<String, Integer> map = new HashMap<String, Integer>() {
{
put("**", 15); //11 to 19 and 21 to 26
put("*0", 2); // 1 and 2
put("*1", 2);
put("*2", 2);
put("*3", 2);
put("*4", 2);
put("*5", 2);
put("*6", 2);
put("*7", 1); //1
put("*8", 1);
put("*9", 1);
put("1*", 9); //1 to 9
put("2*", 6); //1 to 6
}};
我正在尝试从上面的地图中获取与“2*”相对应的值,例如,
方法 1
String string = "2*";
char[] ch = string.toCharArray();
map.getOrDefault(ch[0]+ch[1], 0); //returns 0
方法 2
String string = "2*";
char[] ch = string.toCharArray();
map.getOrDefault(String.valueOf(ch[0])+String.valueOf(ch[1]), 0); //returns 6
第一个 sn-p 总是返回“0”,而第二个可以返回正确的值。我不明白怎么做。有人能告诉我吗?
【问题讨论】: