如何从Java中的逗号和半冒号的文件中读取行

时间:2014-03-18 04:33:52

标签: java text-parsing

我知道我可以使用File Reader类。但是当我在一行中阅读单独的文本部分时,我对实现感到困惑。

文件中的每一行都有名称(名字和姓氏用空格分隔),但逗号用于分隔UKNOWN全名。然后使用分号来分隔线内的部分。下一部分由街道名称组成(每个街道名称也用逗号分隔)。

我想要做的是将全名读入字符串的ArrayList,当达到分号时,应将街道名称插入到单独的字符串ArrayList中。

如果我能得到一个关于如何继续实施的简短示例,我可以自己完成整个事情。

注意:必须从文本文件中读取。每行将是一个单独的测试用例,包括全名和街道名称。

编辑:

以下是输入示例: James Cooper,John Evans,Abe Lincoln; Jackson st,没办法,Aspen Way

输出: 名单的数组列表= James Cooper,John Evans,Abe Lincoln(每个用逗号分隔)

街道名称的数组列表包含= Jackson st,没办法,Aspen Way(每个用逗号分隔)

3 个答案:

答案 0 :(得分:1)

最简单的做法可能是将整行读入String,然后多次使用String的{​​{1}}。

split()

答案 1 :(得分:0)

Scanner课程对所有这些都足够好。您必须适当地使用方法useDelimiter(),具体取决于您要使用的分隔符(即分隔字符/字符串)。

答案 2 :(得分:0)

如果您不介意引入额外的依赖关系,请查看OpenCSV(http://opencsv.sourceforge.net/)。

这是一个非常基本的例子,它读取一行(称为“nextLine”),然后将每个元素添加到dataArray中。当它调用reader.readNext()时,它会更改为新行。如果您确定只有两行数据可以替换'while'语句并首先对names数组进行硬编码,请调用readNext()然后调用street names数组。

    //Create the ArrayList to hold data
    ArrayList<String> dataArray =  new ArrayList<String>(); 

    //openCSV reader to parse the CSV file
    CSVReader reader = new CSVReader(new FileReader(f));

    //nextLine array contains a an entire row of data,
    //Each element represents a cell in the spreadsheet.
    String[] nextLine;

    //Iterate though the CSV while there are more lines to read
    while((nextLine = reader.readNext()) != null)
    {
                    //Iterate through the elements on this line
        for(String s : nextLine)
        {
            dataArray.add(s);
        }
    }

来源:http://opencsv.sourceforge.net/#how-to-read

-Kaz