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 matrixAmatrixB- 结合使用和 使用、和分隔行 元素分离使用| 我的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
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;可在继续之前使用。