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

Java 如何删除toString()中的最后一个分隔符,java,tostring,Java,Tostring,我将组合两个矩阵: 矩阵= 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-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 m

我将组合两个矩阵:

矩阵=

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-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

matrixAmatrixB- 结合使用和

使用、和分隔行

元素分离使用|

我的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();
    }
我的结果是:

7.0 0、-75.0 |-75.0 0 |-62.0、75.0 |-62.0 |-75.0 |-62.0 |-62.0 12400 0 12400 0 0 0 0 0 0 12445 5 5 5 5 0 0 0 0 0 12445 5 5 5 5 5 5 5 5 0 0 0 1244-10.0 0 0 0 124;10.0;10.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12455 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5-20.0 |-20.0 |-20.0,0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0


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

您只需获得一个没有最后一个元素的子字符串即可删除它

result.toString().replaceAll(",$", "");
return result.substring(0, result.length() - 1);

我相信您应该能够添加一个if条件来检查I/k的值,并在此基础上添加a。

您可以将它添加到下一个实体的开头,而不是在entityrow、元素等的末尾添加分隔符

例如,您可以执行以下操作:-

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

如果=values.length-1{result.append,;}这是一个典型的用例,您应该更喜欢StringBuilder而不是StringBuffer.+1,但是toString是多余的。可以直接在StringBuffer上使用。@marounnaroun-您应该已经编辑了答案。其实我没有意识到。不管怎样,现在就编辑它!谢谢:唐宁街的选民们,有什么评论吗?!我不介意你投反对票,但是你能给出你的建议,这样我可以改进这篇文章吗?如果这不是StringBuffer上的最后一个操作,result.setLengthresult.length-1;可在继续之前使用。