Java、Android Stringと16進HexStringは互いに変換します。

1169 ワード

Java、Android Stringと16進HexStringは互いに変換します。
また、16進数とbyteを互いに変換し、二つの案を提供しました。http://blog.csdn.net/yanzhenjie1003/article/details/44887621
/**
	 * String 16  
	 * @author YOLANDA
	 * @param str
	 * @return
	 */
	public static String stringToHex(String str) {
		//             
		byte[] bytes = str.getBytes();
		StringBuilder sb = new StringBuilder(bytes.length * 2);
		//              2 16    
		for (int i = 0; i < bytes.length; i++) {
			sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
			sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
		}
		return sb.toString();
	}

	/**
	 * 16   String
	 * @author YOLANDA
	 * @param bytes
	 * @return
	 */
	public static String hexToString(String hexStr) {
		ByteArrayOutputStream baos = new ByteArrayOutputStream(hexStr.length() / 2);
		//   2 16           
		for (int i = 0; i < hexStr.length(); i += 2){
			try {
				baos.write((hexString.indexOf(hexStr.charAt(i)) << 4 | hexString.indexOf(hexStr.charAt(i + 1))));
			} catch (StringIndexOutOfBoundsException e) {
				return " 16    ";
			}
		}
		return new String(baos.toByteArray());
	}