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;

これは、string.append の下の 2 番目のコメントである g を返します。上記のコメントを返すために必要ですが、最後の文字列部分のコメントを削除して、この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 に答える