如何引用整数的某些数字并进行比较? Java的

时间:2015-05-18 23:38:32

标签: java

我一直致力于根据某些4 digit number确定parameters的计划。

我尝试实施的parameters之一就是int的数字无法重复,而且我已经开始拥有麻烦。

到目前为止,这是我的代码:

public class FourDigit {

    public static void main(String[] args) {

        int poss = 0;

        //counts from 1000 to 3999
        for (int counter = 1000; counter < 4000; counter++)
        {
            // Makes sure the number is divisible by 10 and 5
            if (counter % 5 == 0 && counter % 10 == 0)
            {
                // Prints and counts all of the possibilities
                System.out.print(counter + " ");
                poss++;
            }

            // What I've been trying...
            String string = Integer.toString(counter);

            if (string.substring(1,2) == string.substring(2,3))
                System.out.println("Hello");

        }
        System.out.println(poss);
    }

}

P.S。 println是暂时的,只是为了检查它是否有效。

数字必须介于1000和4000之间,不能以0开头,并且必须以0结尾。此外,第二个数字必须是偶数,并且不允许重复。

谢谢,Dccciz:)

2 个答案:

答案 0 :(得分:3)

如果您确定该数字是4位数,请按照这种方式进行。

int d1,d2,d3,d4;

d1 = num % 10;
num /= 10;
d2 = num % 10;
num /= 10;
d3 = num % 10;
num /= 10;
d4 = num % 10;

你也可以把它放在一个数组中,该数组用你在for循环中调用的函数编写:

private int[] splitDigits(int num){

    int n = num;       //making a copy for not rowen the num we got
    int[] arr = new int[4];
    int i = 0;

    while (i < 4){
        arr[i++] = n % 10;
        n /= 10;
    }

    return arr;
}

修改

现在您可以在for循环中调用此函数:

for (int counter = 1000; counter < 4000; counter++) {
    int[] digits = splitDigits(counter);
    .
    .
}

答案 1 :(得分:0)

使用String方法最容易解决,只需要一行:

boolean hasRepeats = Integer.toString(number).matches(".*(.).*\\1.*");