嗨我有一个看起来像这样的csv:
r1c1|r1c2|r1c3
r2c1|r2c2|r2c3
如您所见,它由字符“|”
分隔在我的应用程序中,我试图使用输入流来爆炸。这是我的代码:
String line = "";
String cvsSplitBy = "|";
try {
File initialFile = new File(myfile.txt);
InputStream targetStream = new FileInputStream(initialFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(targetStream));
while ((line = reader.readLine()) != null) {
String[] RowData = line.split(cvsSplitBy);
String c0 = RowData[0];
String c1 = RowData[1];
String c2 = RowData[2];
Toast.makeText(mainactivity.this, c2, Toast.LENGTH_LONG).show();
}
}catch (IOException ex) {
// handle exception
}
不幸的是,这似乎将csv中的每个字符都作为一行返回。上面的toast示例返回1然后返回2.
任何想法如何返回正确的列,任何人?
答案 0 :(得分:1)
split()
在给定的正则表达式的匹配项下拆分字符串,因此使用特殊字符(垂直条是其中之一)需要转义以去除其"权限&# 34。
String cvsSplitBy = "\\|"
请参阅文档:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html