我的文本文件是这样的:读逗号分隔的文本文件
1, gold, silver, truck
2, gold, fire, truck
3, china, asia, gold, silver, truck, truck
4, ireland, spain, prague, paris
如何跳线(1,2,3,4)的第一个元素,并通过一个读字一个休息?
而如何只读取一行的第一个元素?
原因我需要将它们分开存储到两个HashMaps中。
THX
我的文本文件是这样的:读逗号分隔的文本文件
1, gold, silver, truck
2, gold, fire, truck
3, china, asia, gold, silver, truck, truck
4, ireland, spain, prague, paris
如何跳线(1,2,3,4)的第一个元素,并通过一个读字一个休息?
而如何只读取一行的第一个元素?
原因我需要将它们分开存储到两个HashMaps中。
THX
我认为你需要逐行读取文件中的行,那么试试这个:
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
// do stuff
}
br.close();
,如果你想跳过第一个元素while循环之前添加此代码。
br.readLine();//to skip the first line
第二个代码段将如何帮助跳过第一个元素? – quantumbyte
你看过commons-csv吗? http://commons.apache.org/proper/commons-csv/
我认为OP想要实现的简单任务可以在没有库的情况下轻松完成。我觉得这样会过度。 – quantumbyte
您可以逐行读取文件,并在逗号处分别读取split。这给你一个String[]
。该数组中的第一个元素是数字,其他是单词。
您可以通过在线和使用字符串标记读取文件行: StringTokenizer的ST =新的StringTokenizer(字符串的ReadLine,字符串 “”);检查this
可以读取令牌与逗号隔开,并通过令牌读取令牌:
Scanner sc = new Scanner(new File("myfile.txt"));
sc.useDelimiter(",|$");
int lineNumber = 1;
String lineNumberStr = String.valueof(lineNumber);
while (sc.hasNext()) {
String token = sc.next();
if (toekn.equals(lineNumberStr)) {
++lineNumber;
lineNumberStr = String.valueof(lineNumber);
continue;
} // if
putWordIntoMyHashMap(token);
} // while
我闻到了家庭作业... – ElGavilan
'分裂()'字符串对象方法。也可以使用'BufferedFileReader'类'readLine()'方法 –
使用'String.split(“,”)'和'String.replaceAll(“\\ w”,“”)' –