0

我正在使用 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

提前感谢您的帮助。

4

1 回答 1

0
myRedactedString = myString.replaceAll("[badchars]", "x");

替换badchars为您要替换的实际字符。替换x为您想要替换它们的内容,可能是空字符串。[请记住根据正则表达式规则转义字符。例子:

myCompressedString = myString.replaceAll("[, \[\]]", "");

--- 编辑添加

after = before.replaceAll("null", ";").replaceAll("[\[\] ]", "");

请注意,第二个 replaceAll 中的空间需要吃掉源空间。

于 2013-03-19T23:57:43.387 回答