String[] split = data.split("\\|",-1);
Это не фактическое требование во все времена. Недостаток выше показан ниже:
Scenerio 1:
When all data are present:
String data = "5|6|7||8|9|10|";
String[] split = data.split("\\|");
String[] splt = data.split("\\|",-1);
System.out.println(split.length); //output: 7
System.out.println(splt.length); //output: 8
Когда данные отсутствуют:
Scenerio 2: Data Missing
String data = "5|6|7||8|||";
String[] split = data.split("\\|");
String[] splt = data.split("\\|",-1);
System.out.println(split.length); //output: 5
System.out.println(splt.length); //output: 8
Реальное требование - длина должна быть 7, хотя данные отсутствуют. Потому что есть случаи, например, когда мне нужно вставить в базу данных или что-то еще. Мы можем достичь этого, используя подход ниже.
String data = "5|6|7||8|||";
String[] split = data.split("\\|");
String[] splt = data.replaceAll("\\|$","").split("\\|",-1);
System.out.println(split.length); //output: 5
System.out.println(splt.length); //output:7
То, что я сделал здесь, я удаляю "|" труба в конце, а затем разделить строку. Если у вас есть "," в качестве разделителя, то вам нужно добавить ", $" внутри replaceAll.