Я недавно сталкивался с этой проблемой и не знаю, как ее решить.Я знаю, что в классе String у нас есть метод split , который принимает регулярное выражение и, основываясь на регулярном выражении, данная строка разбивается на разные строки и возвращается в массив строк.
Например, если у меня есть
String s = "A,B,C";
, а у меня есть
System.out.println(Arrays.toString(s.split(",")));
, он выведет [A, B, C] на выходную консоль.
Теперьскажем, моя строка
String s = "A,\"\"B\"\",\"\"C\"\",D"; //easier to read version: A,""B"",""C"",D
и я использую следующее регулярное выражение для разбиения строки:
String regex = ",|,\"\"|\"\",|\"\",\"\""; // matches , OR ,"" OR "", OR "",""
System.out.println(Arrays.toString(s.split(regex)));
Я получаю вывод как [A, "B," "C,D].Как расщепление работает здесь?И как мне определить мое регулярное выражение, чтобы я получил [A, B, C, D] в качестве выходных данных?
ПРИМЕЧАНИЕ: я знаю, что я хочу достичь, можно сделать другими способами (например, методом replaceAll), но я хочу использовать только String.split для этой проблемы, так как я хочу знать, как его использоватьв этом случае.