データ分割の場合、コマのペアを見つけて、それらの間に特別なマークを配置できる"a,b,c,d,,,,,e,f,g"
ように見えるはずであると仮定します。a b c d , , e f g
このようにして、その特別なマークが付いたコマは削除する必要があることを知ることができますが、特別なマークが付いたコマは残す必要があります。そのアイデアに基づくコードは次のようになります
String data = "a,b,c,d,,,,,e,f,g";
data = data.replace(",,", ",XspecialSplitX,");
String[] tokens = data.split(",XspecialSplitX|(?<!XspecialSplitX),");
for (String s : tokens)
System.out.print(s+" ");
出力:a b c d , , e f g
正規表現を使用しないより高速で簡単な方法。文字列にコンマで区切られた単一
の文字
のみが含まれている場合、必要なすべての文字のインデックスは偶数で、区切りのコンマは奇数になります。この場合、このようにすべての偶数インデックスを反復処理するだけです。
char[] data="a,b,c,d,,,e,f,g".toCharArray();
for(int i=0; i<data.length; i+=2)
System.out.println(data[i]);