【发布时间】:2022-02-02 17:53:22
【问题描述】:
public static int[] booleanToBinary(boolean[] b) {
int[] arr = new int[b.length];
for(int i = 0; i < b.length; i++) {
if(b[i] == true) {
arr[i] = 1;
}
else{arr[i] = 0;};
}
return arr;
}
public static int binaryToInt(boolean[] b) {
int[] a = booleanToBinary(b);
String c = Arrays.toString(a);
System.out.println(c);
int decimal = Integer.parseInt(c, 2);
System.out.println(decimal);
return decimal;
}
public static void main(String[] args) {
boolean[] test = {false, true, false, true};
System.out.println(Arrays.toString(booleanToBinary(test)));
System.out.println(binaryToInt(test));
}
块引用 我正在尝试将二进制值转换为整数值,并且我正在尝试使用 binaryToInt 方法来执行此操作,并且正在发生 NumberExceptionFormat,我知道当 java 无法将字符串转换为整数时会发生此错误,可以有人帮我解决这个错误
【问题讨论】:
-
int decimal = Integer.parseInt(c, 2);c将类似于"[1,0,1...]"也许您的意思是先将列表加入字符串(“101 ...”) -
在这里找到一些解决方案:Java: join array of primitives with separator 除非您不想要分隔符。只是一个空字符串 (
"")。例如:String c = IntStream.of(a).mapToObj(i -> String.valueOf(i)).collect(Collectors.joining()); -
@JohnnyMopp ,是的,这是个好主意,我可以将字符串 c 修改为
String c = a.toString();,但它显示了[I@372f7a8d -
您必须将数组加入字符串 - 请参阅我之前评论中的链接。 或者,让
booleanToBinary()返回一个字符串而不是一个数组。例如使用StringBuilder或只是简单的串联。
标签: java numberformatexception