如何删除toString()中的最后一个分隔符

时间:2013-11-05 07:24:36

标签: java tostring

我正在组合两个矩阵:

matrixA =

719.0 501.0 -75.0
    501.0 508.0 -62.0
    -75.0 -62.0 10.0

matrixB =

-19.0 -19.0 -19.0 -19.0 -19.0 -19.0 -19.0 -19.0 -19.0 -19.0
    -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0
    0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

矩阵matrixA#matrixB- 使用#

组合

使用,

分隔行 使用|

分隔

元素

我的toString代码是:

public String toString() {
        String separator = "|";
            StringBuffer result = new StringBuffer();

        for (int k = 0; k < keys.length; k++) {
                 for(int l = 0; l < keys[k].length; l++){
                result.append(keys[k][l]);
                result.append(separator);
            }
           result.setLength(result.length() - separator.length());
            // add a line break.
            result.append(",");
        }
       result.append("#");
        for (int i = 0; i < values.length; i++) {
           for(int j = 0; j < values[i].length; j++){
                result.append(values[i][j]);
                result.append(separator);
            }
            // remove  separator
            result.setLength(result.length() - separator.length());
            // add a line break.
            result.append(",");
        }
      return result.toString();
    }

我的结果是:

719.0 | 501.0 | -75.0,501.0 | 508.0 | -62.0,-75.0 | -62.0 | 10.0 ,# - 19.0 | -19.0 | -19.0 | -19.0 | -19.0 | -19.0 | -19.0 | -19.0 | -19.0 | -19.0,-20.0 | -20.0 | -20.0 | -20.0 | -20.0 | -20.0 | -20.0 | -20.0 | -20.0 | -20.0,0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 ,

如何删除最后一个分隔符?

4 个答案:

答案 0 :(得分:3)

你可以通过获取没有最后一个元素的子字符串来删除它。

return result.substring(0, result.length() - 1);

答案 1 :(得分:2)

result.toString().replaceAll(",$", "");

答案 2 :(得分:2)

您可以将其添加到下一个实体的开头,而不是将分隔符添加到实体的末尾(行,元素等)。

例如,对于,,您可以这样做: -

for (int k = 0; k < keys.length; k++) {

    // add a line break.
    if (k != 0)
        result.append(",");

    for(int l = 0; l < keys[k].length; l++){
        result.append(keys[k][l]);
        result.append(separator);
    }
}

答案 3 :(得分:1)

我相信你应该能够添加一个if条件来检查i / k的值并根据它添加一个(,)。