2011-12-20 4 views
0

Я хотел бы разбить текст на отдельные слова, используя java.Разделить слова в java

SalesCost для государства, тестирования, "28 октября 2011 00:00:00", 12

Ожидать результат:

1.SalesCost для государства
2.testing
3. «28 окт, 2011 00:00:00»
4.12

Разделенный запятой не является надлежащим.

Есть ли другие решения? Любые предложения приветствуются.

-spk-

+2

Получить библиотеку анализа CSV. http://stackoverflow.com/questions/2053761/what-is-a-good-csv-java-utility – Thilo

+0

«/ W +» сделает это .. включите это в regex .. –

+0

@SrinivasReddyThatiparthy кажется, что вы в конечном итоге с та же проблема. Он должен соответствовать «,» в дате, нет? – Matt

ответ

3

Вы пытаетесь разобрать стандартный файл CSV? Похоже на это. В любом случае, вы можете дать OpenCSV. Вы также можете использовать его для разбора разделенной запятыми строки и определения escape-символа, такого как отметка кавычки.

3

String.split() использует регулярные выражения. Таким образом, вы можете использовать негативный внешний вид для этого.

попробовать что-то вроде этого:

split("(?!\\"),(?!\\")");

Я не пробовал этот конкретный регулярное выражение, но играть немного с ним и обратиться к API док. В конце концов это должно сработать.

НО, похоже, вы просто хотите разобрать формат CSV. Поэтому я бы рекомендовал использовать синтаксический анализатор CSV. Например, этот: http://opencsv.sourceforge.net/

+0

Привет, Алекс, объясните это регулярное выражение. – sprabhakaran

0

Если вы всегда можете ожидать пробел перед разделяющими полями запятыми, вы всегда можете добавить это в свой разделитель, чтобы избежать разделения на запятую в дате. Это не так гибко, но может быть намного быстрее, если бы было безопасно использовать данные.

Смежные вопросы