Синтаксический анализ CSV в Java: как разделить этот токен? - PullRequest
0 голосов
/ 21 марта 2012

В моем CSV-файле есть строка, загруженная на сервер в виде:

21-June-2012 Football MU-Chelsea London (first row)
22-June-2012 Basketball NY-MY New York (second row)

Когда я делаю разбор CSV с кодом ниже:

BufferedInputStream bis = new BufferedInputStream(stream);
ByteArrayBuffer baf = new ByteArrayBuffer (50);int current = 0;
int current = 0;
while ((current = bis.read()) != -1){
    baf.append((byte)current);
}
String stockTxt =  new String (baf.toByteArray());  
String [] tokens = stockTxt.split(",");
String date_CSV     = tokens [2];
String time_CSV     = tokens [3];
String game_CSV     = tokens [4];
String gamedesc_CSV = tokens [5];
String venue_CSV    = tokens [6];

Показывает результат:

token [0] = 21-June-2012 
token [1] = Football 
token [2] = MU-Chelsea 
token [3] = London 22-June-2012 
token [4] = Basketball 
token [5] = NY-MY
token [6] = New York

Для токена [3] мой ожидаемый результат - Лондон, а мой ожидаемый результат для токена 4 - 22-June-2012. Как мне сделать расщепление для этого?

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Поскольку вы знаете, что данные находятся в «формате Excel CSV», вам следует искать библиотеку, которая может обрабатывать этот формат.Есть несколько, которые вы можете использовать бесплатно.После этого чтение файла становится очень простым, так как вам больше не нужно беспокоиться о формате файла.Ваш код должен заботиться только о readLine и readField, а не об обработке самого ввода-вывода.

0 голосов
/ 21 марта 2012

Каждая строка находится на отдельной строке, поэтому вам нужно сначала прочитать строку ввода и разделить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...