比较三个字符串

时间:2015-01-12 19:42:29

标签: java string bluej

我知道这个问题之前可能已经得到了回答,但我已经围成一圈了。我可以比较两个字符串,但比较三个我不知道如何。我的代码的目的是玩家有3张牌,如果两张牌有相同的牌,则玩家获得5点额外积分,如果所有三张牌都相同则玩家获得10点积分。我可以加5分,但我不能只在所有三个都正确的情况下加10。有人可以帮忙吗?

这是我的代码

    private void setScore()
    {
        score = cardOne.setScore() + cardTwo.setScore() + cardThree.setScore();
        if(cardOne.getSuitName().equals(cardTwo.getSuitName()))
        if(cardOne.getSuitName().equals(cardThree.getSuitName()))
        if(cardTwo.getSuitName().equals(cardThree.getSuitName()))
    {
        score = score + 5;
    }
        if(cardOne.getSuitName().equals(cardTwo.getSuitName().equals(cardThree.getSuitName())))
    {
        score = score + 5;
    }


    }

5 个答案:

答案 0 :(得分:1)

尝试使用“和”运算符&&

if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName()))
{
    score = score + 5;
}

答案 1 :(得分:1)

if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName())) 
{
    score += 5;
}

基本上,如果卡2与卡1相同而卡3与卡1相同,则卡2和卡3也是相同的。您可以将它们放在一个if语句中,然后使用+=

将分数增加五

答案 2 :(得分:1)

您可以使用流操作符或(||)和(&&);

答案 3 :(得分:0)

这样做:

Set<String> suits = new HashSet<>(Arrays.asList(
        cardOne.getSuitName(),cardTwo.getSuitName(),cardThree.getSuitName()));
if(suits.size() == 1) score += 10;
else if(suits.size() == 2) score += 5;

答案 4 :(得分:0)

将分数视为整数数据类型,我们可以尝试比较卡值如下。

private void setScore()
{
    int score = cardOne.setScore() + cardTwo.setScore() + cardThree.setScore();
    // check if any two cards are same
    if(cardOne.getSuitName().equals(cardTwo.getSuitName())   ||
                    cardOne.getSuitName().equals(cardThree.getSuitName()) ||
                    cardTwo.getSuitName().equals(cardThree.getSuitName())){
        score +=  5;
        // check if all three cards are same
        if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardTwo.getSuitName().equals(cardThree.getSuitName())){
            score +=  5;
        }
    }
}

希望上面的代码片段有帮助..