Java-使用整数

Java-使用整数,java,Java,编写一个名为digitsInARow的静态方法,该方法将整数n作为参数,并返回以10为基数表示的n的行中出现的最大位数。对于许多数字,答案是1,因为它们没有匹配的相邻数字。但对于355585这样的数字,答案是4,因为一行中出现了四次数字5。不允许使用字符串来解决此问题。您可以假定传递给该方法的值大于或等于0 public static int digitsInARow(int n) { if (n / 10 == 0) { return 1; } int

编写一个名为digitsInARow的静态方法,该方法将整数n作为参数,并返回以10为基数表示的n的行中出现的最大位数。对于许多数字,答案是1,因为它们没有匹配的相邻数字。但对于355585这样的数字,答案是4,因为一行中出现了四次数字5。不允许使用字符串来解决此问题。您可以假定传递给该方法的值大于或等于0

public static int digitsInARow(int n) {
    if (n / 10 == 0) {
        return 1;
    }
    int count = 0;
    int count1 = 0;

    while (n > 0) {
        int digit = n % 10;
        int a = n / 10;
        if (digit == a % 10) {
            count++;
        } else {
            count1 = Math.max(count1, count);
            count = 0;
        }        
        n = n / 10;
    }
    return Math.max(count, count1);
}

我知道if的陈述是错误的。我试图找出一种方法来比较连续的数字,而不使用整数类或字符串类。有什么建议吗?

您的代码的问题是
count
跟踪当前计数,而不是最高计数。您还需要添加一个跟踪最高计数的变量,并在每次处理数字时更新它,然后再将
count
重置回零


退出循环时,不要忘记更新最高计数,以防当前的
count
大于先前找到的
max

当前代码有什么问题?您需要跟踪最大计数。现在,只要计数重置为0,代码就会忘记它。@Tunaki输出不正确。它一直返回0,除非它是一个数字,我有一个单独的if语句。谢谢!我稍微编辑了我的代码,但输出仍然是错误的。@TheBolt这是因为
count1+=count零件。您应该指定
count1
count1
和新
count
的最大值。谢谢!我尝试了另一种方法,但仍然不正确:/