Я пытаюсь разобрать через запятую строку с помощью:Как разобрать запятую (CSV) с некоторыми элементами в кавычках?
val array = input.split(",")
Затем я заметил, что некоторые входные строки имеют «» внутри кавычек:
data0, "data1", data2, data3, "data4-1, data4-2, data4-3", data5
* Обратите внимание, что данные не очень чистые, поэтому некоторые поля в кавычках, а некоторые не
Как разбить такую строку в:
array(0) = data0
array(1) = data1
array(2) = data2
array(3) = data3
array(4) = data4-1, data4-2, data4-3
array(5) = data5
Разбор CSV-файлов может быть печально из-за его поведения вокруг котировок, а также запятых и котировок, включенных в приведенные значения. Я рекомендую вытащить библиотеку, которая хорошо рассматривается для надежного решения всех дел. Параметры, которые вы могли бы рассмотреть, включают [scala-csv] (https://github.com/tototoshi/scala-csv) и [traversable-csv] (http://labs.encoded.io/2012/04/09/reading -csv-файлы-в-лестница-з-проходимой-полосной /). Или используйте библиотеку Java, такую как [opencsv] (http://opencsv.sourceforge.net/). – Shadowlands
В противном случае, если вы не хотите или не можете использовать библиотеку, вы можете посмотреть [этот ответ SO] (http://stackoverflow.com/questions/5063022/use-scala-parser-combinator-to- parse-csv-files/5063652 # 5063652) или [этот ответ SO] (http://stackoverflow.com/questions/32488364/whats-a-simple-scala-only-way-to-read-in-and-then -write-out-a-small-csv-file/32488453 # 32488453), чтобы узнать, как другие решают ваши собственные синтаксические анализаторы CSV. – Shadowlands
@Shadowlands Не могли бы вы обобщить ваши комментарии в ответе (так как я думаю, вы показали множество ценных подходов, другие могут извлечь выгоду.) Thx. –