Here you can find the source of toByteArray(final String bitString)
Parameter | Description |
---|---|
bitString | The string to convert. |
public static byte[] toByteArray(final String bitString)
//package com.java2s; /*//from w ww .j a va 2 s . co m * Copyright (C) 2015 Hugh Eaves * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ public class Main { /** * Convert a bit string into a byte array. * * @param bitString * The string to convert. * @return The converted value. */ public static byte[] toByteArray(final String bitString) { final byte[] array = new byte[(bitString.length() + Byte.SIZE - 1) / Byte.SIZE]; int byteNum = 0; final int firstBits = bitString.length() % Byte.SIZE; int pos = 0; if (firstBits != 0) { array[byteNum++] = toByte(bitString.substring(0, firstBits)); pos = firstBits; } while (byteNum < array.length) { array[byteNum++] = toByte(bitString.substring(pos, pos + Byte.SIZE)); pos += Byte.SIZE; } return array; } /** * Convert a bit string into an integer value. * * @see BitStringUtil#toLong(String) * * @param bitString * The string to convert. * @return The converted value. */ public static byte toByte(final String bitString) { assert (bitString.length() <= Byte.SIZE); return (byte) toLong(bitString); } /** * Convert a bit string into a long value. Any non zero or one characters in * the string are ignored. * * @param bitString * The string to convert. * @return The converted value. */ public static long toLong(final String bitString) { assert (bitString.length() <= Long.SIZE); long value = 0; for (final char ch : bitString.toCharArray()) { if (ch == '1') { value = value << 1; value = value | 1; } else if (ch == '0') { value = value << 1; } } return value; } }