Java Byte Array Create toByteArray(final String bitString)

Here you can find the source of toByteArray(final String bitString)

Description

Convert a bit string into a byte array.

License

Open Source License

Parameter

Parameter Description
bitString The string to convert.

Return

The converted value.

Declaration

public static byte[] toByteArray(final String bitString) 

Method Source Code

//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;
    }
}

Related

  1. toByteArray(final char[] array)
  2. toByteArray(final int i)
  3. toByteArray(final int i)
  4. toByteArray(final int i, final byte[] output, final int offset)
  5. toByteArray(final int value)
  6. toByteArray(final String hexString)
  7. toByteArray(int data)
  8. toByteArray(int i)
  9. toByteArray(int in)