2012-12-06 64 views
0

我很難從元件中讀取和解析元素後將元素放入數組中。這個想法是,我從中讀取的文本文件有一個問題,然後下一行是一個數字,表示哪個答案是正確的。我將字符串解析爲一個int,但是我無法將解析的int添加到我的答案數組中。所以我的問題是如何將我的int添加到我的數組答案?這裏是我的代碼向數組中添加一個int

//here is how I define my arrays 
List<String> questions = new ArrayList<String>(); 
List<String> other = new ArrayList<String>(); 
int[] answers = new int[questions.size()]; 

while (fScan.hasNextLine()) 
    { 

     String line = fScan.nextLine(); 

    if (line.contains("?")) 
    { 
     questions.add(line); 
     String correctAnswer = fScan.nextLine(); 
     int rightAnswer = Integer.parseInt(correctAnswer); 
     //here's where things go wrong 

     answers.add(rightAnswer); 

    } 
    else 
    { 
     other.add(line); 
    } 
} 
+0

如果解析出錯了怎麼辦? – Addict

+0

嘗試打印出您的rightAnswer而不是添加它。如果沒問題,請告訴你如何定義'answers'數組。 – sashkello

+0

由於我讀取的文件的格式是如何格式化的,解析應該工作,除非在 –

回答

0

你應該使用ArrayList,而不是你的answers陣列。然後你可以像這樣添加元素,否則.add函數會給你一個錯誤。

或者,您可以做answers[i] = rightAnswer,其中i是可以作爲計數器添加的問題的數量。

0

定義的答案爲

ArrayList<Integer> answers=new ArrayList<>(); 

而且它會考慮NumberFormatException好主意 - 如果字符串不包含一個可分析的整數。

0

嘗試爲

//here's where things go wrong 
    answers[questions.size() - 1] = Integer.parseInt(correctAnswer); 

或者只是使用ArrayList

0


有幾種方法可以做到這一點。以下是一個:
改爲在您的answers中使用ArrayList answers = new ArrayList();
在這種情況下,由於ArrayList接受Object,所以不會打擾自己將String轉換爲整數。相反,您可以使用answers.add(correctAnswer)來追加。但是,如果您想要將值作爲字符串獲取,則可以使用answers.get(yourIndex).toString