我正在使用JTables并且我已经成功获取了我的表的内容并将它们放入一个字符串数组中。然后我将数组的每个元素连接成一个字符串。
我需要帮助从字符串中删除特定的字符和空格,如下所示:
tableDataAsString是:
[ABCD, EFGH, IJKL, null][MNOP, QRST, UVWX, null]
[YZAB, CDEF, GHIJ, null][KLMN, OPQR, STUV, null]
[WXYZ, ABCD, EFGH, null]
以上是最后一次System.out.println打印的内容。我的代码如下:
// Get table data as String
public void getTableContent() {
//System.out.println("x-x-x-x-x-x Get table content in string format has started x-x-x-x-x-x ");
int nRow = getRowCount(), nCol = getColumnCount();
Object[][] tableData = new Object[nRow][nCol];
// For loops used to run thriugh rows and columns in order to fetch cell values
for (int i = 0 ; i < nRow ; i++)
for (int j = 0 ; j < nCol - 1 ; j++)
tableData[i][j] = getValueAt(i,j);
// Prepare string array which will contain cell values
String tableDataAsStringArray[] = new String[tableData.length];
// Write cell values into string array
for (int i = 0; i < tableDataAsStringArray.length; i++ ) {
tableDataAsStringArray[i] = java.util.Arrays.toString(tableData[i]);
System.out.println("getTableContent() - Table data in row " + i + " of string array is: " + tableDataAsStringArray[i]);
}
StringBuilder builder = new StringBuilder();
// Append all the cell values into a single string
for(String s : tableDataAsStringArray) {
builder.append(s);
}
String tableDataAsString = builder.toString();
System.out.println("getTableContent() - tableDataAsString is: " + tableDataAsString);
//System.out.println("x-x-x-x-x-x Get table content in string format has ended x-x-x-x-x-x ");
}
更具体一点,我想删除[]并用分号();替换null。所以我替换后的理想结果是:ABCD,EFGH,IJKL; MNOP,QRST,UVWX; YZAB,CDEF,GHIJ; KLMN,OPQR,STUV; WXYZ,ABCD,EFGH
提前感谢您的帮助。
答案 0 :(得分:0)
myRedactedString = myString.replaceAll("[badchars]", "x");
将badchars
替换为您要替换的实际字符。将x
替换为您要替换它们的内容,可能是空字符串。请记住根据正则表达式规则转义[
之类的字符。例如:
myCompressedString = myString.replaceAll("[, \[\]]", "");
---编辑添加
after = before.replaceAll("null", ";").replaceAll("[\[\] ]", "");
请注意,第二个replaceAll中的空格需要占用源空间。