将文本读入ArrayList

时间:2014-03-28 09:59:48

标签: java arrays arraylist

我将以下数据存储在.txt文件中:

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(); 
}

我的问题是我无法存储数组,因此一个和一个位于不同的位置。即数组的结构如下[one1,two2,...]。

提前感谢您的帮助

3 个答案:

答案 0 :(得分: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(); 
}

答案 1 :(得分:0)

使用此代替while循环,

String str;
String []st;

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

答案 2 :(得分:0)

试试这个

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