У меня есть сообщения в файле, как показано ниже, и я использую com.univocity.parsers.csv.CsvParser
, чтобы разделить строку на основе разделителя (в данном случае это -
)
1-bc- "name"-def-address
1-abc- "name-def-address
Я создаю свой CsvParser
объект, такой как
private val settings = new CsvParserSettings()
settings.getFormat.setDelimiter('-')
settings.setIgnoreLeadingWhitespaces(true)
settings.setIgnoreTrailingWhitespaces(true)
settings.setReadInputOnSeparateThread(false)
settings.setNullValue("")
settings.setMaxCharsPerColumn(-1)
val parser = new CsvParser(settings)
и анализирую вводсообщение типа:
for (line <- Source.fromFile("path\\test.txt").getLines) {
println(parser.parseLine(line).toList)
}
и вывод:
List(1, bc, name, def, address)
List(1, abc, name-def-address)
Если вы видите вывод, вы видите, что для 1-го сообщения строка была правильно разделена, но для второго сообщения она занимает всев качестве значения после первой двойной кавычки. Кто-нибудь знает, почему такое поведение и как я могу получить желаемый результат? Я читаю каждое сообщение как строку, к которой следует просто относиться к кавычке / двойной кавычке как к символу.