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