2014-03-28 59 views
0

我有存儲在一個.txt文件下列數據:閱讀文本轉換成一個ArrayList

one,1 
two,2 
three,3 
...... 

我想存儲在具有以下結構的陣列的信息:

[one,1,two,2....] 

這裏到目前爲止我的代碼:

public Shortener(String inAbbreviationsFilePath) throws FileNotFoundException { 

    Scanner s = new Scanner(new File(inAbbreviationsFilePath)); 
    ArrayList<String> list = new ArrayList<String>(); 

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

abbreviations = list.toArray(new String[list.size()]); 
s.close(); 
} 

我的問題是,我不能讓存儲陣列,這樣一個和1在不同的positio納秒。即目前陣列的結構如此[one1,two2,...]。

感謝您的幫助提前

回答

0

你必須昏迷每一行拆分,並添加它的兩個部分,以你的結果:

public Shortener(String inAbbreviationsFilePath) throws FileNotFoundException { 

    Scanner s = new Scanner(new File(inAbbreviationsFilePath)); 
    ArrayList<String> list = new ArrayList<String>(); 

    while (s.hasNext()) { 
     //HERE 
     String line = s.next(); 
     String[] lineSplit = line.split(","); //split into two tokens 
     list.add(lineSplit[0]); //word 
     list.add(lineSplit[1]); //number 
    } 

    abbreviations = list.toArray(new String[list.size()]); 
    s.close(); 
} 
+0

感謝darijan正是我所期待的。謝謝 – user130316

0

使用此而不是while循環,

String str; 
String []st; 

while ((str=s.nextLine())!=null){ 
     st=str.split(","); 
     list.add(st[0]); 
     list.add(st[1]); 
    } 
0

試試這個

Scanner s = new Scanner(new File... 
s.useDelimiter("\\s+|,");