java - 从整数中删除数字

标签 java numbers integer

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

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

最佳答案

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

我们可以使用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

关于java - 从整数中删除数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380682/

相关文章:

perl - 如何使用 Perl 脚本将二进制数转换为字符串字符?

c - C 中 x64 上的 128 位算术

java - Java Swing 表单中的值列表

java - 如何将面向对象的结构映射到表单字段?

java - 搜索数组中的元素然后从该行中提取所有元素的最佳方法

algorithm - 数字金字塔算法 : Numbers 1-15 in a pyramid where each number is the difference of the subjacent numbers

c++ - 如何制作一个程序,找出 1 到 100 万之间的快乐数字的数量

java - Fat Java 客户端需要通过 http/https 与 Web 服务器进行双向通信 channel

haskell - 在 Haskell 中获取数字的除数列表时出现问题

types - 为什么 Rust 的 u64.pow 需要 u32?