У меня есть файл csv в нижнем формате. Я получаю сообщение, если какая-либо из данных cowv beow считывается программойЧто касается Java Split Command CSV File Parsing
«D», abc «def», «0429» 292 «0», «11», «IJ80», «Feb10_1 .txt-2" , "записи файла", "05/02/2010", "04/03/2010", "", "1", "- 91", "", ""
"D", "abc" def "," "," 04292920 "," 11 "," IJ80 "," Feb10_1.txt-2 "," FILE RECORD "," 05/02/2010 "," 04/03/2010 "," "," 1 "," - 91 "," "," "
Следующая команда разделения используется для игнорирования запятых внутри двойных кавычек. Я получил команду split split из более ранней записи , Вставили URL, который я взял эту команду
Строковые элементы [] = line.split ("(? = ([^ \ "] \"[^ \ "] \") [^ \"] $) "15); System.out.println ("items.length" + items.length);
Regarding Java Split Command Parsing Csv File
items.length печатается как 14 вместо 15. ABC" def не распознается как отдельное поле, и он неправильно записывается как «D», abc «def» в пунктах [0]. Я хочу, чтобы он хранился ниже:
Элементы [0] должны быть «D», а элементы [1] должны быть abc «def
Такая же проблема возникает, когда имеется значение« abc »def». Я хочу, чтобы хранить как
пунктов [0] должно быть «D» и пункты [1] должны быть «а» DEF»
Кроме того, эта команда сплита отлично работает, если двойные кавычки повторяются внутри двойного кавычки (значение поля D, "ABC" "DEF", 1).
Как я решить эту проблему.
Недействительные строки CSV. Котировку следует избегать. Я предлагаю вам написать простой небольшой парсер и отказаться от регулярного выражения. –
Как я уже сказал в предыдущей теме: ** Не используйте регулярное выражение для разбора CSV. Это требует неприятностей. ** Это полная трата времени. См. Мой ответ: http://stackoverflow.com/questions/2241915/regarding-java-string-manipulation/2241950#2241950 О, пожалуйста, обратите внимание на * одну учетную запись пользователя здесь. – BalusC