根据键盘输入返回值?

时间:2012-09-22 13:19:24

标签: java input

如果用户输入“C”,我只想要输出为12.0 键入“H”也是如此。 问题是输入存储为字符串正确吗? 我试图通过Double.parseDouble

将字符串转换为double
import java.util.Scanner;

public class Elements {

    Scanner input=new Scanner(System.in);   
    public static final double H = 1.0; 
    public static final double Li = 6.9;
    public static final double Be = 9;
    public static final double B = 10.8;
    public static final double C = 12.0;

    public double output() {
        return C ; // I want the user to choose the variable to return
    }
}

3 个答案:

答案 0 :(得分:5)

不是将值存储为字段,而是将它们存储在地图中:

private static final Map<String, Double> values = new HashMap<String, Double>();
static {
    values.put("H", 1.0);
    values.put("Li", 6.9);
    // and so on...
}

然后,在output()中:

return values.get(input.nextLine());

使用常量字段执行此操作的唯一方法是使用反射,并且您真的不想去那里。

答案 1 :(得分:0)

地图将解决您的问题。地图返回特定键的值。

java.util.HashMap<String, Double> map = new java.util.HashMap<String, Double>();
map.put("C", 12.0);
map.put("H", 1.0);
map.put("B", 10.8);

您可以获取用户输入的值:

Double value = map.get(inputString);

答案 2 :(得分:0)

您是否考虑过使用输入使用Switch / case语句?

相关问题