2012-09-22 149 views
1

如果用戶鍵入「C」,我只是希望輸出爲12.0 與鍵入「H」相同。 問題是輸入被存儲爲字符串正確嗎? 我試圖將字符串轉換爲加倍雖然Double.parseDouble基於鍵盤輸入的返回值?


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 
    } 
} 
+1

這甚至不會編譯。你能告訴我們你試過了什麼嗎? – Keppil

回答

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... 
} 

然後,在輸出():

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

隨着不斷的領域做的,你現在有唯一的辦法很多人反思,你真的不想去那裏。

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); 
0

你有沒有想過使用使用輸入開關/ case語句?