split
принимает регулярное выражение, поэтому вы можете использовать правильное регулярное выражение для разделения, только если |
не находится внутри кавычек:
val inputData = """null|123456|xxx12345|123|-11234|123|2000-01-01|XXX|01|0.000000000000|0.000000000000|0.000000000000|"AAA |AAA Data Group (AAA Inc)"|null|-|2000-01-01|-|null|null|xx"""
inputData.split("\|(?=([^"]*"[^"]*")*[^"]*$)")
// Array(null, 123456, xxx12345, 123, -11234, 123, 2000-01-01, XXX, 01, 0.000000000000, 0.000000000000, 0.000000000000, "AAA |AAA Data Group (AAA Inc)", null, -, 2000-01-01, -, null, null, xx)
Я позаимствовал регулярное выражение из этого вопроса .