Снимок кода Проблемный пример строки У меня возникли проблемы с чтением CSV из-за строк, подобных той, которую я предоставил, которая находится в файле CSV. Слово Schr"" воздействует на читателя, заставляя его думать, что на этом значение заканчивается. Как мне обойти это? не все ряды такие. Он читается нормально, пока не достигает таких строк. Я также использую для этого программу чтения openCSV. Функция parseInteger() — это просто функция, которую я создал для отладки и поиска проблемы.
while ((line = reader.readNext()) != null) {
int id = parseInteger(line.length > 0 ? line[0] : null,0);
String title = line.length > 1 ? line[1] : null;
String abstractText = line.length > 2 ? line[2] : null;
int maths = parseInteger(line.length > 3 ? line[3] : null, 0);
int physics = parseInteger(line.length > 4 ? line[4] : null, 0);
int compsc = parseInteger(line.length > 5 ? line[5] : null, 0);
int stats = parseInteger(line.length > 6 ? line[6] : null, 0);
int quantbio = parseInteger(line.length > 7 ? line[7] : null, 0);
int quantfin = parseInteger(line.length > 8 ? line[8] : null, 0);
articles.add(new Article(title, id, abstractText, maths, physics, compsc, stats, quantbio, quantfin));
Я пытался использовать различные функции, чтобы обойти это, но пока ничего не получалось.
Удалите \"" из слова Shrodinger в столбце Альтернативный текст. Вы найдете эту ерунду в нескольких записях CSV. Убедитесь, что вы также используете CSVReader.
Правильное написание — Schrödinger, но кажется, что кто-то считает хорошей идеей использовать строку \"" o вместо буквы ö. Выполните поиск и замену в файле. Либо так, либо вы читаете с неправильной кодировкой символов.




Проблема с обратной косой чертой и двойными кавычками. CSV использует запятые в качестве разделителя значений, поэтому, если вам нужно использовать запятую в значении, вы должны заключить значение в двойные кавычки.
Value1,Value2,"Value,3",Value4
Если вам нужно использовать запятую и двойные кавычки, вам нужно избежать этого (например):
Value1,Value2,"Value,\"3\"",Value4
Я думаю, что CSV недействителен и парсер путается из-за двойной кавычки с обратной косой чертой.
Сначала вы должны очистить свой CSV и использовать escape-последовательность только там, где она должна использоваться.
В вашем случае это недопустимо:
val1,Schr\"",val3
Это будет работать:
val1,"Schr\"",val3
Не размещайте код в изображении. Код должен быть размещен в формате с вопросом.