2013-05-06 54 views
0

我想從文件中將整數添加到ArrayList和list.add不想工作。我只嘗試了大約一千種不同的方式來編寫這段代碼。該list.add(s.next());行給出了在Eclipse中的錯誤,list.add不能與ArrayList一起工作

The method add(Integer) in the type List<Integer> is not applicable for the arguments (String).

聽起來像我莫名其妙地試圖做只能用一個字符串來完成一個整數的東西,但我需要他們保持整數如果在過去的5天裏我一直沒有用Java搜索,學習和掌握Java,我可能明白它的含義。

我可以得到它與常規的陣列就好了工作,但我的ArrayList集合是一個真正的痛苦,我不知道我做錯了。任何幫助將非常感激。

在此先感謝。


import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
import java.util.Scanner; 

public class MyCollection { 
    @SuppressWarnings({ "rawtypes", "unchecked" }) 
    public static void main(String[] args) { 

     List<Integer> list = new ArrayList(); 

     //---- ArrayList 'list' 
     Scanner s = new Scanner(new File("C:/Users/emissary/Desktop/workspace/stuff/src/numbers.txt")); 

     while (s.hasNext()) { 
      list.add(s.next()); 
     } 
     s.close(); 

     Collections.sort(list); 
     for (Integer integer : list){ 
      System.out.printf("%s, ", integer); 
     } 
    } 

} 
+6

'掃描器#next()'返回一個字符串,你想掃描器#nextInt() 。這還需要一些更具體的文件處理('hasNextInt()'),並根據你的txt文件的格式跳過新行。 – 2013-05-06 14:31:12

回答

1

您正嘗試將String增加的Integer的List。

s.next()返回下一個標記爲一個字符串,它不能被添加到整數的列表明顯。

+0

感謝您的幫助,這就是訣竅!我覺得我的頭埋在書本里太久了,只是被燒燬了。感謝幫助我抓住明顯的! – 2013-05-06 16:26:02

3

s.next()指返回String類型的方法。由於Java是強類型的,因此必須從用戶返回一個整數或int類型。 s.nextInt()將工作得很好。

+0

感謝所有的幫助,這就是訣竅! 我想我的頭埋在書本里太久了,只是被燒燬了。感謝幫助我抓住明顯的! – 2013-05-06 16:10:04

1

嘗試:

List<Integer> list = new ArrayList<Integer>(); 

    //---- ArrayList 'list' 
    Scanner s = new Scanner(new File("C:/Users/emissary/Desktop/workspace/stuff/src/numbers.txt")); 

    while (s.hasNextInt()) { 
     list.add(s.nextInt()); 
    } 
    s.close(); 

    Collections.sort(list); 
    for (Integer integer : list){ 
     System.out.printf("%s, ", integer); 
    } 

s.hasNextInt()檢查是否存在在從掃描器的下一個數據的整數。並且要將整數添加到整數列表中,您必須使用nextInt(返回整數而不是字符串) 對不起,我的英語不好

+0

感謝所有的幫助,這就是訣竅! 我想我的頭埋在書本里太久了,只是被燒燬了。感謝幫助我抓住明顯的! – 2013-05-06 16:09:45