我知道我可以使用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(每个用逗号分隔)
答案 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