我的文本文件是這樣的:讀逗號分隔的文本文件
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」,「」)' –