String[] split = data.split("\\|",-1);
Bu her zaman asıl gereklilik değildir. Yukarıdaki dezavantaj aşağıda gösterilmiştir:
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
Veriler eksik olduğunda:
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
Gerçek gereksinim, veri eksik olmasına rağmen uzunluk 7 olmalıdır. Çünkü ne zaman veritabanına veya başka bir şey eklemek gerekir gibi durumlar vardır. Bunu aşağıdaki yaklaşımı kullanarak başarabiliriz.
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
Burada yaptığım şey, "|" Sonunda boru ve sonra Dize bölün. Bir ayırıcı olarak "," varsa, replaceAll içine ", $" eklemeniz gerekir.