如果用户输入“C”,我只想要输出为12.0 键入“H”也是如此。 问题是输入存储为字符串正确吗? 我试图通过Double.parseDouble
将字符串转换为doubleimport 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
}
}
答案 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语句?