从整数中删除数字

时间:2018-01-22 11:34:15

标签: java numbers integer

我想知道如何从整数中删除数字。例如,如果我的号码为23875326,我想删除奇数,并得到2826的结果。

我一直试图打破每个数字以使用while循环检查它是偶数还是奇数,但我不知道如何将数字合并为一个整数。一件重要的事情是,我不想使用字符串,因为它不会教我任何新的东西。

2 个答案:

答案 0 :(得分:1)

我实际上认为处理一串数字是优选的,不仅从代码可读性的角度来看,而且可能来自性能视图。话虽这么说,如果我们绝对不能在这里使用字符串,那么仍然可以直接使用整数输入。

我们可以使用num % 10检查输入数字的每个十位数。如果该数字是偶数,我们可以将其添加到输出数字,否则不添加它。请注意,在每次迭代时,我们需要将数字缩放10到正确的指数。

以下是一个有效的代码段:

int length = (int) (Math.log10(num) + 1);    // finds the number of digits

int output = 0;
int counter = 0;
for (int i=0; i < length; ++i) {
    if ((num % 10) % 2 == 0) {
        output += (num % 10) * Math.pow(10, counter);
        ++counter;
    }
    num = num / 10;
}

System.out.println(output);

2826

Demo

答案 1 :(得分:0)

我使用了@Tim Biegeleisen代码并对其进行了一些修改,删除了一些代码并将for循环更改为while循环:

    int output = 0;
    int counter = 0;
    System.out.println("Enter a number");
    int num = s.nextInt();
    while (num != 0) {
        if ((num % 10) % 2 == 0) {
            output += (num % 10) * Math.pow(10, counter);
            ++counter;
        }
        num = num / 10;
    }
    System.out.println(output);`