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内に「、$」を追加する必要があります。