gpt4 book ai didi

java - HashMap 中的每隔一个字母

转载 作者:行者123 更新时间:2023-12-02 04:16:02 27 4
gpt4 key购买 nike

HashMap<String,Integer> hm1 = new HashMap<String,Integer>
HashMap<String,Integer> hm2 = new HashMap<String,Integer>

我希望循环遍历字母表,并根据数字在文本中的出现情况添加与数字匹配的“a-z”。我已经完全正常工作了,但是我现在正在改变它。我希望它经过两个 HashMap ,例如“a”转到 hm1,“b”转到 hm2,“c”转到 hm1。 'd' 转到 hm2。所以其他的都改变了。我已经尝试了大约几个小时并且很挣扎。

我试图通过访问值的索引并尝试进行取模来做到这一点,所以如果它是例如0-25 然后只将偶数索引添加到一个 HashMap ,将奇数索引添加到另一个 HashMap 。这样我就可以收到想要的所有其他信件。然而似乎无法使其正常工作,非常令人沮丧!

编辑:示例:

  for ( char a = 'a'; a < z; a++){
for ( int i = 0; 0<25; i++){
h1.put(a,i);
}
}

如果我希望上面的代码能够做到这一点,但不是全部都在一个 HashMap 中,而是在两个 HashMap 中,一个执行 a、c、e,另一个执行 b、d、f 等等...但使用值0-25 不是那么明显,但可能是很大的数字。

最佳答案

你可以获取键的第一个字母,获取它的int值(记住在java中,一个字符是一个int值),并获取它的模2。像这样:

private void putValue(String key, Integer value) {
int firstLetterInt = (int) key.charAt(0);
if (firstLetterInt % 2 == 0) {
hm1.put(key, value);
}
else {
hm2.put(key, value);
}
}

...

putValue("a", 66);
putValue("b", 100);

更一般的情况是有一个 map 列表:

List<Map<String, Integer>> maps;

如果 map 已正确初始化,您的 putValue 将如下所示:

private void putValue(String key, Integer value) {
int firstLetterInt = (int) key.charAt(0);
maps.get(firstLetterInt % maps.size()).put(key, value);
}

关于java - HashMap 中的每隔一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310373/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com