データベースの結果セット行から生成された次の文字列を分割したいと思います。
サンプル行:
A) (74,"and there","is a car","in the","garage man",t)
B) (17,アカウント3,,,,t)
次のような出力が必要です (パイプ | 分割要素を分離する):
A) 74 | そしてそこに | 車です | |で ガレージマン | t
B) 17 | アカウント3 | | | | | | | t
アプリケーションで null として格納される長さの値をゼロにしたい。これは私のソースコードです:
public void refreshSearchTable (ArrayList<String> newData){
int noOfRows = newData.size();
int noOfColumns = gui.getTableSearchResultHeader().length + 1;
Object[][] tempList = new Object[noOfRows][noOfColumns];
String rowResult = "";
String delims = "[,()\"]+";
String [] tokens;
Object [] elements = newData.toArray();
int j = 0;
for (int i = 0; i < noOfRows; i++){
rowResult = elements[i].toString();
System.out.println("rowresult: " + rowResult);
tokens = rowResult.split(delims, -1);
for (String t : tokens){
System.out.println("j: " + j + "t: " + t);
if (j == 1){ ... }
else if (j==2){ ... }
...
j++;
}
j=0;
}
}
"[,()\"]+" は、ゼロ以外の長さの値に対して正常に機能します。インデックス値 j に従って、正しい部分文字列を取得できます。負の値を split(, ) は、ゼロ以外の長さの値を破棄しません ... しかし、そうします。