java - 将 int 数组的二进制表示形式的 1 的数量存储在另一个数组中

标签 java arrays binary

我想将一个数组中给出的一些整数的二进制表示中 1 的数量存储在另一个相应的数组中;以下是我正在编写的代码;但它显示错误“将 'arr' 的类型更改为 'int'” 出了什么问题?

public static int[] arrange(int[] numbers){
String[] arr = new String[numbers.length];
for(int i =0;i<numbers.length;i++){
    arr[i]= Integer.toBinaryString(numbers[i]);
}
int[] a2 = new int[numbers.length];
for(int i =0;i<numbers.length;i++){
    a2[i]=Integer.bitCount(arr[i]);
}

最佳答案

您正在将字符串传递给 Integer.bitCount 方法:

a2[i]=Integer.bitCount(arr[i]);

但是方法 bitCount(int) 不适用于参数 (String)。更改此分配以将 int 值传递给 bitCount:

a2[i]=Integer.bitCount(Integer.parseInt(arr[i]));

关于java - 将 int 数组的二进制表示形式的 1 的数量存储在另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18846288/

相关文章:

java - 如何在服务层处理Spring JPA的版本

C#数组从一行中获取最后一项

matlab - 在处理二进制数时,如何从 char 格式转换为 double 格式?

java - 创建子类对象时如何调用抽象类构造函数?

java - Android,org.simpleframework.xml 持久化异常,元素 'foo' 已被使用

java - 比较java中的两个原始long变量

java - 如何按日期对数组数组进行排序?

java - 如何将重复数组元素分配为唯一键,并计算相应的整数值?

javascript - 检测 JavaScript 中的不可打印字符

c# - 如何在 C# 中读写二进制文件?