Я пытаюсь разобрать значения, разделенные запятыми, заключенные в кавычки, используя только стандартные библиотеки Java (я знаю, что это должно быть возможно)Разбор значений, разделенных запятыми, заключенные в кавычки
В качестве примера file.txt содержит новая линия для каждой строки
"Foo","Bar","04042013","04102013","Stuff"
"Foo2","Bar2","04042013","04102013","Stuff2"
Однако, когда я анализирую файл с кодом, которую я написал до сих пор:
import java.io.*;
import java.util.Arrays;
public class ReadCSV{
public static void main(String[] arg) throws Exception {
BufferedReader myFile = new BufferedReader(new FileReader("file.txt"));
String myRow = myFile.readLine();
while (myRow != null){
//split by comma separated quote enclosed values
//BUG - first and last values get an extra quote
String[] myArray = myRow.split("\",\""); //the problem
for (String item:myArray) { System.out.print(item + "\t"); }
System.out.println();
myRow = myFile.readLine();
}
myFile.close();
}
}
Однако outpu т является
"Foo Bar 04042013 04102013 Stuff"
"Foo2 Bar2 04042013 04102013 Stuff2"
Вместо
Foo Bar 04042013 04102013 Stuff
Foo2 Bar2 04042013 04102013 Stuff2
Я знаю, что пошло не так в Сплите, но я не уверен, как это исправить.
возможно дубликат [Java: Разбиение строки, разделенные запятых, но игнорирующие запятые в кавычках] (http://stackoverflow.com/questions/1757065/java-splitting-a-comma-separated-string-but -ignoring-commas-in-quotes) –
Я действительно прочитал об этом, и это не та же проблема. Этот пример имел значения, разделенные запятыми, со случайными кавычками, мой вопрос касается цитаты, разделенной запятой, прилагаемой для всех значений. – sputn1ck
не говоря уже о решении было регулярное выражение, которое не должно быть здесь (надеюсь!). Мой желаемый результат не показывает никаких кавычек вообще, тогда как вывод в другом столбце сохраняет кавычки. – sputn1ck