java - Java map 中的错误是什么?

标签 java dictionary

我正在尝试解决这个问题:http://www.cstutoringcenter.com/problems/problems.php?id=4 ,但我不明白为什么我的代码不能解决这个问题,我的意思是在“for”中我怎样才能将字母相乘?我的错误是什么?它总是显示 7,但我想将所有字母相乘。我希望你能帮助我。

public class ejercicio3 {

    public static void main(String args[]) {

        Map<Character, Integer> telefono = new HashMap<Character, Integer>();

        telefono.put('A', 2);
        telefono.put('B', 2);
        telefono.put('C', 2);
        telefono.put('D', 3);
        telefono.put('E', 3);
        telefono.put('F', 3);
        telefono.put('G', 4);
        telefono.put('H', 4);
        telefono.put('I', 4);
        telefono.put('J', 5);
        telefono.put('K', 5);
        telefono.put('L', 5);
        telefono.put('M', 6);
        telefono.put('N', 6);
        telefono.put('O', 6);
        telefono.put('P', 7);
        telefono.put('R', 7);
        telefono.put('S', 7);
        telefono.put('T', 8);
        telefono.put('U', 8);
        telefono.put('V', 8);
        telefono.put('W', 9);
        telefono.put('X', 9);
        telefono.put('Y', 9);

        String mensaje = "Practice";
        int producto = 1;

        for (char c : mensaje.toCharArray()) {    
            if (telefono.containsKey(c)) {
                producto = telefono.get(c) * producto;
                System.out.println(producto);
            }
        }
    }
}

最佳答案

首先将字符串转换为全部大写!

它只找到第一个字符“P”,它给出的正确答案是 7。

尝试改变:

for (char c : mensaje.toCharArray()) {

for (char c : mensaje.toUpperCase().toCharArray()) {

关于java - Java map 中的错误是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795076/

相关文章:

ios - gpx 文件中的地理定位和跟踪

java 键绑定(bind) - 不要捕获 Windows 中 AltGr 的 CTRL

java - 如何在 Java 中获取文件的图标?

Java 性能逐渐下降

python - 如何从具有不同长度列表的字典创建字典列表

python - 如何调用实例列表中的特定方法(使用 map )?

PYTHON:将字典中的值从一个键移动到另一个键

Solaris 10 64 位上的 Cassandra 因 Unsafe_GetLong 崩溃

java - 如果它们在组合中,如何从另一个类中正确调用java中的方法?

python - 创建字典的更优雅代码的提示