Конвертировать логическое значение [] в строку и наоборот в Java - PullRequest
2 голосов
/ 14 декабря 2009

Как преобразовать логический массив (или BitSet) в строку и наоборот.

Пример:

boolean[] ar = {true,false,false,false,false};
print(BitArrayToString(ar));

Должен вернуть один из следующих

10000 //binary
16 //decimal
10 //hex, prefered

И наоборот тоже должно работать

ar = StringToBitArray(BitArrayToString(ar));

Ответы [ 2 ]

3 голосов
/ 14 декабря 2009
long bitSetInt = 0;
for (int i = 0 ; i < ar.length ; i++) {
   bitSetInt = (bitSetInt | toDigit(ar[i])) << 1;
}
println(String.format("%x", bitSetInt));

, где

int toDigit(boolean b) { return b?1:0;}

работает до тех пор, пока массив ar меньше размера long. Используйте http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax для других нужд форматирования

2 голосов
/ 14 декабря 2009

Ну, вы могли бы сделать что-то вроде этого:

StringBuilder builder = new StringBuilder();
for (int i = 0; i < array.length; i++) {
    if (array[i]) builder.append("1"); else builder.append("0");
}
return builder.toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...