比较三个字符串
Comparing three strings
我知道这个问题以前可能有人回答过,但我在兜圈子。我可以很好地比较两个字符串,但我不确定如何比较三个字符串。我的代码的目的是玩家有 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;
}
}
尝试使用 "and" 运算符 &&
:
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName()))
{
score = score + 5;
}
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName()))
{
score += 5;
}
基本上,如果卡二和卡一一样,卡三和卡一一样,那么卡二和卡三也是一样的。您可以将它们放在一个 if
语句中,您可以使用 +=
将分数增加 5
这样做:
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;
您可以使用流运算符或 (||
) and and(&&
);
将分数视为整数数据类型,我们可以尝试如下比较卡值..
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;
}
}
}
希望上面的代码片段对您有所帮助..
我知道这个问题以前可能有人回答过,但我在兜圈子。我可以很好地比较两个字符串,但我不确定如何比较三个字符串。我的代码的目的是玩家有 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;
}
}
尝试使用 "and" 运算符 &&
:
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName()))
{
score = score + 5;
}
if(cardOne.getSuitName().equals(cardTwo.getSuitName()) && cardOne.getSuitName().equals(cardThree.getSuitName()))
{
score += 5;
}
基本上,如果卡二和卡一一样,卡三和卡一一样,那么卡二和卡三也是一样的。您可以将它们放在一个 if
语句中,您可以使用 +=
这样做:
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;
您可以使用流运算符或 (||
) and and(&&
);
将分数视为整数数据类型,我们可以尝试如下比较卡值..
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;
}
}
}
希望上面的代码片段对您有所帮助..