如果有一个小问题,希望你能告诉我一个更好的解决方法。所以我正在使用扫描仪类读取CSV文件。
scanner.useDelimiter("~");
while (scanner.hasNext()) {
if (scanner.next();.equalsIgnoreCase("einfuegen_pdf")) {
//then give me the next element, which is not ""
}
}
在CSV文件中,如下所示,我正在寻找“Einfuegen_PDF”之后的值。在这种情况下: $ Datei {MR-Test-PDF-01}
~~~Einfuegen_PDF~~$Datei{MR-Test-PDF-01}~L~M~0~0~0~0~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
直到现在我的解决方案有效,但我正在寻找一种更优雅的方式来处理这个问题。
scanner.useDelimiter("~");
List<String> csvContent = new ArrayList<>();
int count = 0;
boolean hit = false;
while (scanner.hasNext()) {
String element = scanner.next();
if (element.equalsIgnoreCase("einfuegen_pdf")) {
hit = true;
count = 1;
} else if (hit && count == 1) {
count = 2;
} else if (hit && count == 2) {
csvContent.add(element);
hit = false;
count = 0;
}
}
提前感谢任何建议或解决方案。
到目前为止
答案 0 :(得分:1)
如何每行扫描并尝试以下操作。
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] tokens = line.split("~");
String pdf = tokens[3];
if (pdf.equalsIgnoreCase("einfuegen_pdf")) {
csvContent.add(tokens[5]);
}
}
这将通过循环执行更少的迭代。 PDF文件位于数组索引3处,您要查找的CSV内容位于索引5处。