我正在编写一个名为isThreeOfAKind()的方法来分析5个整数的值。
此方法应返回布尔值。
我不确定如何将其放入代码中,以便找出5个整数中是否有3个彼此相等。

该程序的某些背景是,它在开始时会生成5个新的随机数,这些随机数被分配给整数。例如我有

public YahtzeeRoll(){
    int input;
    for (int i=5;i <= 5; i++){
        input = rangen.nextInt(5) + 1;
        die1 = input;
        input = rangen.nextInt(5) + 1;
        die2 = input;
        input = rangen.nextInt(5) + 1;
        die3 = input;
        input = rangen.nextInt(5) + 1;
        die4 = input;
        input = rangen.nextInt(5) + 1;
        die5 = input;
    }


我知道for语句很奇怪,但是它使它循环了一次(我认为),这给了我5个整数die1,die2,die3,die4和die5,它们具有1到5之间的随机值。

我的isThreeOfAKind()应该以某种方式找出这5个整数中的三个是否相等。
到目前为止,我所拥有的只是

public Boolean isThreeOfAKind(){

}


我认为也许会使用if语句,如果满足if语句要求,它将返回true,则else语句将返回false,但是我不确定如何比较5个整数,然后为它。任何帮助表示赞赏!

最佳答案

如果您用5个骰子做成一个String,例如"25326",则可以使用StringUtils来计数每个数字的出现次数。

int ones = StringUtils.countMatches(diceString, "1");
int twos = StringUtils.countMatches(diceString, "2");
int threes = StringUtils.countMatches(diceString, "3");
int fours = StringUtils.countMatches(diceString, "4");
int fives = StringUtils.countMatches(diceString, "5");
int sixes = StringUtils.countMatches(diceString, "6");


如果其中任何一个为3,则您有3个同类

return ones==3 || twos==3 || threes==3 || fours==3 || fives==3 || sixes==3;

08-03 14:24