轉載自 這裡
* Simple way :
* A faster way :
* A elegant way :
* Simple way :
- public static String getHexString(byte[] b) throws Exception {
- String result = "";
- for (int i=0; i < b.length; i++) {
- result +=
- Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
- }
- return result;
- }
* A faster way :
- import java.io.UnsupportedEncodingException;
- public class StringUtils {
- static final byte[] HEX_CHAR_TABLE = {
- (byte)'0', (byte)'1', (byte)'2', (byte)'3',
- (byte)'4', (byte)'5', (byte)'6', (byte)'7',
- (byte)'8', (byte)'9', (byte)'a', (byte)'b',
- (byte)'c', (byte)'d', (byte)'e', (byte)'f'
- };
- public static String getHexString(byte[] raw)
- throws UnsupportedEncodingException
- {
- byte[] hex = new byte[2 * raw.length];
- int index = 0;
- for (byte b : raw) {
- int v = b & 0xFF;
- hex[index++] = HEX_CHAR_TABLE[v >>> 4];
- hex[index++] = HEX_CHAR_TABLE[v & 0xF];
- }
- return new String(hex, "ASCII");
- }
- public static void main(String args[]) throws Exception{
- byte[] byteArray = {
- (byte)255, (byte)254, (byte)253,
- (byte)252, (byte)251, (byte)250
- };
- System.out.println(StringUtils.getHexString(byteArray));
- /*
- * output :
- * fffefdfcfbfa
- */
- }
- }
* A elegant way :
- static final String HEXES = "0123456789ABCDEF";
- public static String getHex( byte [] raw ) {
- if ( raw == null ) {
- return null;
- }
- final StringBuilder hex = new StringBuilder( 2 * raw.length );
- for ( final byte b : raw ) {
- hex.append(HEXES.charAt((b & 0xF0) >> 4))
- .append(HEXES.charAt((b & 0x0F)));
- }
- return hex.toString();
- }
This message was edited 1 time. Last update was at 24/03/2010 20:46:58
沒有留言:
張貼留言