【问题标题】:Taking away certain commas etc in a toString去掉 toString 中的某些逗号等
【发布时间】:2013-03-29 11:10:29
【问题描述】:

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

我不知道如何在最后一个字符串部分去掉这个逗号,谁能解释一下。

【问题讨论】:

  • Strings 上使用+ 运算符有点破坏StringBuilder 的目的。
  • 你可以链接 StringBuilder.append("...").appened("...")... (offtopic)

标签: java string arraylist tostring


【解决方案1】:

不是在每次迭代之后附加逗号,而是在每次迭代之前附加逗号除了第一个

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-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多