0

这是我目前的 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 的模式。

我不知道如何在最后一个字符串部分去掉这个逗号,任何人都可以解释一下。

4

1 回答 1

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(...
于 2013-03-29T11:13:39.410 回答