2013-03-19 2 views
0

Я работаю с JTables, и я успешно извлек содержимое моей таблицы и поместил их в массив строк. Затем я конкатенировал каждый элемент массива в одну строку.Java - Устранение определенных символов и пробелов в строке

мне любезно нужна помощь с удаляющей конкретные символы и пробелы из строки, которая выглядит следующим образом:

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 "); 
} 

Чтобы быть более конкретным, я хочу, чтобы удалить [] и заменить нуль точкой с запятой() ;. Таким образом, мой идеальный результат после замены будет следующим: ABCD, EFGH, IJKL; MNOP, QRST, UVWX; YZAB, CDEF, GHIJ; KLMN, OPQR, STUV; WXYZ, ABCD, EFGH

Заранее благодарим за любую помощь.

+0

Метод String класса replace (char oldChar, char newChar) заменит конкретные символы новым. Это то, что ты собираешься делать? – adchilds

+0

Итак, вы хотели заменить '[,]' символы из tableDataAsString? – Smit

+0

Чтобы быть более конкретным, я хочу удалить [] и заменить значение null точкой с запятой() ;. Таким образом, мой идеальный результат после замены: ABCD, EFGH, IJKL; MNOP, QRST, UVWX; YZAB, CDEF, GHIJ; KLMN, OPQR, STUV; WXYZ, ABCD, EFGH – TokTok123

ответ

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

Заменить badchars с действительными символами, которые вы хотите заменить. Замените x тем, что вы хотите заменить, возможно, пустую строку. Не забудьте избежать символа, как [ в соответствии с правилами регулярных выражений. Пример:

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

--- Отредактированный добавить

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

Пожалуйста, обратите внимание, что пространство во втором replaceAll требуется съесть исходные пространства.

+0

Привет, Мел, позвольте мне попробовать и см. .. но спасибо – TokTok123

+0

отредактирован, чтобы соответствовать вашим особенностям. –

Смежные вопросы