有条件地在for循环中连接字符串,或使用预定义的字符串

时间:2014-02-18 02:49:18

标签: java hashmap conditional statements

我有以下HashMap

private HashMap<String, Team> allTeams = new HashMap<String, Team>();

我希望作为联盟中所有球队的String回归,否则会回复“联盟中没有球队”的信息。

我写了这段代码:

public String getTeam()
{           
    String x = "";  

    for(Team tm : allTeams.values())
    {           
        if(tm.getStatus().equals("Added"))
        {                   
            x = x + tm.toString();  
        }    
        else
        {
            x = "there are no teams in your league";
        }
    }
    return temp;     
}

如果删除条件语句的“else”部分,则代码可以正常工作。

然而,如果我保留“其他”部分,我会不断收到“你们联盟中没有球队”,我理解这是因为一旦所有球队都被退回,就没有其他球队可以返回,因此“其他”声明的一部分始终打印出来。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

一种方法是检查循环外x是否为空,如果是,则设置它。

public String getTeam()
{           
    String x = "";  

    for(Team tm : allTeams.values())
    {           
        if(tm.getStatus().equals("Added"))
        {                   
            x = x + tm.toString();  
        }    
    }
    if (x.isEmpty())
    {
        x = "there are no teams in your league";
    }
    return x;     
}

我认为您打算返回x,而不是temp,因为此处未定义temp