String[] split = data.split("\\|",-1);
Nie jest to faktyczny wymóg przez cały czas. Wadę powyższego przedstawiono poniżej:
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
Gdy brakuje danych:
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
Rzeczywistym wymaganiem jest długość powinna wynosić 7, chociaż brakuje danych. Ponieważ zdarzają się przypadki, gdy muszę wstawić do bazy danych lub czegoś innego. Możemy to osiągnąć, stosując poniższe podejście.
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
To, co tutaj zrobiłem, polega na usunięciu „|” potok na końcu, a następnie dzielenie ciągu. Jeśli masz „,” jako separator, musisz dodać „, $” wewnątrz replaceAll.