2017-05-28 29 views
-1

我有一組數據組的格式化賦值於具有不同值的

elements- 
ag,gold,320.0 
h,hydrogen,gas 

對象我有2類金屬和非金屬。它們共享相同的符號和名稱分類字段,但對於屬性具有不同的分類字段

例如,黃金質量爲320.0,氫氣是氣體

我想知道如何將它們分配給適當的類。

這是我迄今爲止想到的。

從文件中讀取這些值後,將它們放入數組,然後檢查[2]處的值是字符串還是double將它分配給非金屬如果字符串和金屬如果是double,但是因爲它是從文件中讀取時的字符串itll始終將其分配給非金屬類。如果我解析它加倍,我不知道如何相互作用。有可能會出現錯誤,因爲字母不能轉換爲double,這是對的嗎?

我該如何解決這個問題?

+0

您打算如何處理這些基本數據?如果您可以告訴我們,也許有人可以提供如何應對源數據中的每一行可能具有不同類型數據的事實。 –

+0

即時打印出對象如果用戶選擇打印出非金屬元素,則僅打印出氫氣僅用於本示例@ TimBiegeleisen – ch1234

+0

最好的辦法是更改文本文件,以便每行都包含統一格式的數據,如CSV文件格式,在該行的每個項目中使用相同類型的數據元素,如果該行沒有有意義的值,則將該行中的項保留爲空。 –

回答

0

解析爲double會生效,你只需要使用try-catch塊。例如:

try{ 
    double d = Double.parseDouble(valuteAt[2]); 
    // do what you want if it is double, for example 
    Metal m = new Metal(..., d); 
    }catch(NumberFormatException ex){ 
    // do what you want if it isn't double 
    NonMetal m = new NonMetal(..., valueAt[2]); 
    }