2

質問が少し曖昧で申し訳ありませんが、私はそれを説明しようとします。

私はこのコードを得ました:

    public String toString()
{
    String s = "text.\n";

    for (Klus k : alleKlussen)
    {
        s += k.toString() + ".\n";
    }
    return s;
}

しかし、条件ごとに異なるループを作成したいと考えています。たとえば、「Klus」には、ステータス、日付などの変数がいくつかあります。

私はまだJavaの経験があまりありませんが、次のようなことは可能でしょうか:

for (Klus k : alleKlussen; status = "completed")
{..}

これが間違っていることはわかっていますが、ステータスが「完了」のすべての「Klus」オブジェクトと、ステータスが「未完了」のすべての「Klus」オブジェクトを表示したいと思います。

ありがとうございます。不明な点や間違った言葉を使用している場合は、教えてください。

編集:

次のようになります。

if (k.getStatus().equals("completed"){
  String s = "completed ones \n"
  s += k.toString() + ".\n"; //get all completed ones
}
if (k.getStatus().equals("uncompleted"){
      String s = "uncompleted ones \n"
      s += k.toString() + ".\n"; //get all uncompleted ones
    }
4

5 に答える 5

4

for()ループ内に条件を追加するだけです。

for (Klus k : alleKlussen) {
    if (k.getStatus().equals("completed")) {
        s += k.toString() + ".\n";
    }
}

質問の追加情報から、次のことが意図されているようです。

String completed = "completed ones \n";
String uncompleted = "uncompleted ones \n";

for (Klus k : alleKlussen) {

    if (k.getStatus().equals("completed")) {
      completed += k.toString() + ".\n"; //get all completed ones
    }
    else if (k.getStatus().equals("uncompleted")) {
       uncompleted += k.toString() + ".\n"; //get all uncompleted ones
    }
}

また、 StringBuilderを使用して結果文字列を作成することも検討する必要があります。これにより、メモリ オーバーヘッドが削減されます。

于 2013-04-05T11:03:52.473 に答える
0

次のような標準のif条件を実行しないのはなぜですか。

if ("".equals(k.getStatus())) {

} else if ("completed".equals(k.getStatus())) {

}
于 2013-04-05T11:04:28.423 に答える
0
   Use this - this toString will print only Klus are completed.
 public String toString()
    {
        String s = "text.\n";

        for (Klus k : alleKlussen)
        {
            if("completed".equals(k.getStatus ()))
            s += k.toString() + ".\n";
        }
        return s;
    }
于 2013-04-05T11:05:07.767 に答える