目前是我的toString方法
StringBuilder string = new StringBuilder();
for (int i = 0; i < knowledgeD.size(); i++ ){
w = knowledgeD.get(i).get(0);
y = knowledgeD.get(i).get(1);
string.append("{true@" + w + ","+" " +"false@" + w.complement() + "}" + "@" + y);
string.append("" +","+" ");
//{{true@1/4, false@3/4}@1/2, {true@2/3, false@1/3}@3/16, {true@4/5, false@1/5}@5/16}
//{{true@1/4, false@3/4}@1/2, {true@2/3, false@1/3}@3/16, {true@4/5, false@1/5}@5/16, }
}
String s = string.toString();
String g = "{" + s + "}";
return g;
这返回g,这是string.append下的第二个注释,我需要它返回上面的注释,但我不能为我的生活找出如何摆脱最后一个字符串片段的评论而只是在那里有一个括号,因为这个Arraylist是可更新的所以字符串的最后一部分即
{true@4/5, false@1/5}@5/16, }
也被添加了,它需要有一个逗号,并遵循toString的模式。
我不知道如何为最后一个字符串部分删除这个逗号,任何人都可以解释一下。
答案 0 :(得分:4)
不是在每次迭代后附加逗号,而是在每次迭代之前追加 除了第一次之外:
for (int i = 0; i < knowledgeD.size(); i++ ){
if (i != 0) {
string.append(", ");
}
w = knowledgeD.get(i).get(0);
y = knowledgeD.get(i).get(1);
string.append("{true@" + w + ","+" " +"false@" + w.complement() + "}" + "@" + y);
}
另外,正如其他人指出的那样
string.append("{true@" + w + ...
最好写成
string.append("{true@").append(w).append(...