Как преобразовать список битов списка строк (["0", "0", "1", "0"] и т. Д.) В int в Java? - PullRequest
0 голосов
/ 16 октября 2019

Например, мой ввод - это список

["0","0","0","0","0","1","0","1"]

, и я хочу преобразовать в целое число, чтобы мой вывод был int из 5

Вот мой кодя мог бы преобразовать список в строку, используя StringBuilder

StringBuilder builder = new StringBuilder();

for(String str : list)  {
 builder.append(str);
 }

builder.toString()   //00000101

Ответы [ 3 ]

5 голосов
/ 16 октября 2019

Вы можете использовать Integer.parseInt() с radix и String.join для преобразования List в String

Integer.parseInt(String.join("",list),2);

Анализирует строковый аргумент как целое число со знаком в указанном основаниипо второму аргументу

0 голосов
/ 16 октября 2019

преобразовать строковый результат в целое число, используя Integer.parseInt("string",2)

StringBuilder builder = new StringBuilder();
for(String str : list)  {
 builder.append(str);
 }

builder.toString() ;  //00000101
int output = Integer.parseInt(builder.toString(),2); // 5
0 голосов
/ 16 октября 2019

Немного другой подход без накладных расходов на манипуляции со строками.

      String[] bits = { "0", "0", "0", "0", "0", "1", "0", "1"
      };
      int val = 0;
      for (String b : bits) {
         val <<= 1;
         val |= b.charAt(0) - '0';
      }
      System.out.println(val);
...