gpt4 book ai didi

java - StringBuffer - 使用 charAt 追加返回 null

转载 作者:行者123 更新时间:2023-12-02 05:01:52 24 4
gpt4 key购买 nike

我似乎找不到这个问题的答案 - 如果这个问题已经被问过,我深表歉意。

在下面的Java代码中,我试图编写一个方法,该方法返回数字值(作为字符串),该数字值将在移动键盘上按下以生成输入字符串,例如“出租车”-> 222。

HashMap 不为空,但是在追加到 StringBuffer 对象 sbf 之后,当我在 main 中打印 wordToSignature("cab") 时,它返回 nullnullnull。

问题似乎出在 word.charAt(i) 代码上。当我在没有 word.charAt(i) 的情况下测试追加时,它会执行追加并打印 HashMap 中的值。

如果有人能指出我可能出错的地方,我将非常感激。

提前致谢。

public static String wordToSignature(String word) {

HashMap <String, String> keypad = new HashMap <String, String>();

keypad.put("a", "2"); keypad.put("b", "2"); keypad.put("c", "2");
keypad.put("d", "3"); keypad.put("e", "3"); keypad.put("f", "3");
keypad.put("g", "4"); keypad.put("h", "4"); keypad.put("i", "4");
keypad.put("j", "5"); keypad.put("k", "5"); keypad.put("l", "5");
keypad.put("m", "6"); keypad.put("n", "6"); keypad.put("o", "6");
keypad.put("p", "7"); keypad.put("q", "7"); keypad.put("r", "7"); keypad.put("s", "7");
keypad.put("t", "8"); keypad.put("u", "8"); keypad.put("v", "8");
keypad.put("w", "9"); keypad.put("x", "9"); keypad.put("y", "9"); keypad.put("z", "9");

StringBuffer sbf = new StringBuffer("");

for(int i = 0; i < word.length(); i++) {
sbf.append(keypad.get(word.charAt(i)));
}
return sbf.toString();
}

最佳答案

试试这个:

HashMap<Character, String> keypad = new HashMap<Character, String>();
keypad.put('a', "2"); keypad.put('b', "2"); keypad.put('c', "2");
// and so on - notice the single quotes!

如果您要迭代 String字符,那么您最好存储 Character 而不是 字符串作为Map中的键。

关于java - StringBuffer - 使用 charAt 追加返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28206055/

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