Супер CSV (Java) - Файлы чтения с пробелами в именах столбцов

Я работаю с Супер CSV, и он похож на удивительный пакет.

Мое единственное беспокойство - то, как работать со столбцами с пробелами на их имена. Нет, я не могу возвратиться и удалить пробелы сам. Эти файлы будут даны мне сотнями, и у меня нет времени, чтобы возвратиться и зафиксировать все 60 столбцов для каждого файла, и я не могу доверять всем остальным, чтобы сделать это правильно.

Как я могу работать со столбцами с пробелами в заголовке (т.е. "Имя" не "FirstName" или "firstName")?

Спасибо!

Для кодирования образцов посмотрите здесь: http://supercsv.sourceforge.net/codeExamples_general.html

5
задан James Bassett 14 April 2012 в 07:40
поделиться

2 ответа

Вы заметили эту строку в примерах, на которые вы ссылаетесь:

final String[] header = inFile.getCSVHeader(true);

Это должно дать вам имена столбцов, не так ли?

http://supercsv.sourceforge.net/javadoc/index .html

Думаю, теперь я понял ваш вопрос. Аргумент String [], переданный функции read , принимает имена свойств класса, в который вы хотите читать. Он позиционный, поэтому ему не нужно называть ничего похожего на заголовки. Так, например, вы можете иметь String [] header = inFile.getCSVHeader () , но затем иметь отображение headerName-> propertyName , поэтому, если ваши поля заголовка были:

First Name, Last Name, Age

но ваш класс был

getFirstName(), setFirstName(...);
getLastName(), setLastName(...);
getYears(), setYears();

передан методу read , а не (String []) {«Имя», «Фамилия», «Возраст»} , как ваш заголовок есть, но передайте в read , массив (String []) {"FirstName", "LastName", "Years"} .

5
ответ дан 13 December 2019 в 22:01
поделиться

Если вы хотите сопоставить заголовок CSV с другим именем, вы можете создать хэш-карту и использовать ее для своей внутренней реализации, например вы можете сопоставить "First Name" с "firstName" и заполнить ваш bean-компонент на основе ваших внутренних имен ..

2
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: