java - 组合 if-then 语句

标签 java if-statement integer

我正在尝试将单个整数从 ASCII 值转换为 0 和 1。相关代码如下所示:

    int num1 = bin.charAt(0);
    int num2 = bin.charAt(1);
    int num3 = bin.charAt(2);
    int num4 = bin.charAt(3);

    if (num1 == 49) 
    {
        num1 = 1;
    }
    else
    {
        num1 = 0;
    }

    if (num2 == 49) 
    {num2 = 1;}
    else
    {
        num2 = 0;
    }

有没有办法组合 if/else 语句,这样我就不用写 30 行相同原理的代码了?

我试过了 if (num1 == 49 || num2 ==49) 但我不知道如何只将等于 49 的值分配给 0。

最佳答案

您可以将 bin 数组转换为另一个 numint 数组。

int[] num = new int[bin.length];
for (int i = 0; i < bin.length; i++) {
    char c = bin[i];
    num[i] = Character.digit(c, 10);
}

这会将任何 char 数字映射为 int 数字。如果您严格只想将 char "1"转换为 int 1,并将任何其他 char 转换为 int 0,你可以将其实现为

num[i] = (c == 49) ? 1 : 0;

关于java - 组合 if-then 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335043/

相关文章:

java - Eclipse war 导出 : optimize for a specific server runtime

java - Mergesort - 将数组拆分成两半时的 Stackoverflow

具有特定条件的 PHP 数组打印值

c - 语句在 for 循环中不起作用

c++ - 如何做一个 "if... then, but also if.... then but if neither do...."

javascript - 如何在 JavaScript 中将 1's and 0' 的数组转换为 ByteArray 或 Integer

java - 为什么有时我必须将 @Test 放在单独的行中才能使其在 Eclipse 中工作

java - 如何在JavaFX中有效地滚动和缩放大图像?

c++ - 带有文本和整数组件的 ShowMessage

仅通过类型转换就可以完成符号/零扩展吗?