我正在尝试解决这个问题: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/