All Downloads are FREE. Search and download functionalities are using the official Maven repository.

no.entur.android.nfc.websocket.messages.ByteArrayHexStringConverter Maven / Gradle / Ivy

The newest version!
package no.entur.android.nfc.websocket.messages;

public class ByteArrayHexStringConverter {

	/**
	 * Utility metoh to convert a byte array to a hexadecimal string.
	 *
	 * @param data Bytes to convert
	 * @return String, containing hexadecimal representation.
	 */
	public static String toHexString(byte[] data) {
		return toHexString(data, "%02X");
	}

	/**
	 * Utility method to convert a byte array to a hexadecimal string.
	 *
	 * @param data   Bytes to convert
	 * @param offset offset
	 * @param length length
	 *
	 * @return String, containing hexadecimal representation.
	 */
	public static String toHexString(byte[] data, int offset, int length) {
		return toHexString(data, offset, length, "%02X");
	}

	public static String toHexString(byte[] data, int offset, int length, String format) {
		StringBuilder sb = new StringBuilder();
		if (data != null) {
			for (int i = offset; i < offset + length; i++) {
				sb.append(String.format(format, data[i]));
			}
		}
		return sb.toString();
	}

	public static String toHexString(byte[] data, String format) {
		StringBuilder sb = new StringBuilder();
		if (data != null) {
			for (byte b : data) {
				sb.append(String.format(format, b));
			}
		}
		return sb.toString();
	}

	public static String byteToHexString(byte b) {
		return String.format("%02X", b);
	}

	public static String byteArrayToSpacedHexString(byte[] data) {
		String s = toHexString(data, "%02X ");
		if (s.length() > 0) {
			return s.substring(0, s.length() - 1);
		}
		return s;
	}

	public static String byteArrayToHexString(byte[] data) {
		return toHexString(data, "%02X");
	}

	public static byte[] hexStringToByteArray(CharSequence s) {
		if(s.length() % 2 != 0) {
			throw new IllegalArgumentException();
		}
		int len = s.length();
		byte[] data = new byte[len / 2];
		for (int i = 0; i < len; i += 2) {
			data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
		}

		return data;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy