Есть двоичное число:
String s = "10000000001000000000101000000001"
Можно ли с помощью метода split()
разбить его на октеты?
console.log("10000000001000000000101000000001".split(/(?!^)(?=(?:.{8})+$)/))
Сплит тут подходит плохо... Регулярка по факту не очень быстрая. Почему не написать простой метод? Что-то типа этого:
private String[] divideBy (String numb, int digitNumb){
final String[]result = new String[numb.length()/digitNumb];
for (int i = 0; i < numb.length()/digitNumb; i++) {
result[i] = numb.substring(i*digitNumb, i*digitNumb+digitNumb);
}
return result;
}
Передаете первым аргументом свое число в стринге, а во втором количество цифр, на которое нужно поделить (по условию это 8, но можно поделить на любое количество) и получаете обычный массив.
Используйте
String s = "10000000001000000000101000000001";
String[] octets = s.split("(?<=\\G.{8})");
System.out.println(Arrays.toString(octets));
// = [10000000, 00100000, 00001010, 00000001]
См. демо онлайн.
Шаблон (?<=\G.{8})
представляет собой блок предварительного просмотра назад и находит позицию после любых первых восьми символов, а потом ещё после восьми и так далее.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Предположим что разрабатывается приложениеВыбран паттерн MVP
Есть некоторые представленияНужно вывести их в QTableView, а так же запрос всех представления существующих в БД, результат это