结合if-then语句

时间:2015-09-01 15:05:45

标签: 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的值。

2 个答案:

答案 0 :(得分:1)

您可以将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;

答案 1 :(得分:0)

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

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