组合 if-then 语句

Combining if-then statements

我正在尝试将单个整数从它们的 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。

直接使用一些已经存在的函数会容易很多:

String string = Integer.decode(bin).toBinaryString();

您可以将 bin 数组转换为另一个 num 数组 int

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;