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