Android Byte Array to String Convert loadConvert(byte[] s, int offset, boolean lengthFlag)

Here you can find the source of loadConvert(byte[] s, int offset, boolean lengthFlag)

Description

load Convert

License

Open Source License

Declaration

public static String loadConvert(byte[] s, int offset,
            boolean lengthFlag) throws IllegalArgumentException 

Method Source Code

//package com.java2s;

public class Main {
    public static String loadConvert(byte[] s, int offset,
            boolean lengthFlag) throws IllegalArgumentException {
        if (null == s || (offset + (lengthFlag ? 1 : 0)) > s.length)
            throw new IllegalArgumentException("invalid byte arrary");

        char aChar;
        int len = (s.length - offset);

        if (lengthFlag) {
            len = s[offset] & 0xFF;/*from ww w.ja va2s  .c  o  m*/
            offset++;
        }

        StringBuffer outBuffer = new StringBuffer(len);

        for (int x = offset; x < (offset + len);) {
            aChar = (char) s[x++];
            if (aChar == '\\') {
                aChar = (char) s[x++];
                if (aChar == 'u') {
                    // Read the xxxx
                    int value = 0;
                    for (int i = 0; i < 4; i++) {
                        aChar = (char) s[x++];
                        switch (aChar) {
                        case '0':
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                        case '8':
                        case '9':
                            value = (value << 4) + aChar - '0';
                            break;
                        case 'a':
                        case 'b':
                        case 'c':
                        case 'd':
                        case 'e':
                        case 'f':
                            value = (value << 4) + 10 + aChar - 'a';
                            break;
                        case 'A':
                        case 'B':
                        case 'C':
                        case 'D':
                        case 'E':
                        case 'F':
                            value = (value << 4) + 10 + aChar - 'A';
                            break;
                        default:
                            throw new IllegalArgumentException(
                                    "Malformed \\uxxxx encoding.");
                        }
                    }
                    outBuffer.append((char) value);
                } else {
                    if (aChar == 't')
                        aChar = '\t';
                    else if (aChar == 'r')
                        aChar = '\r';
                    else if (aChar == 'n')
                        aChar = '\n';
                    else if (aChar == 'f')
                        aChar = '\f';
                    outBuffer.append(aChar);
                }
            } else
                outBuffer.append(aChar);
        }
        return outBuffer.toString();
    }

    /**
     * Method convert byte[] to String
     *
     * @param The string to be format.
     *
     */
    public static String toString(byte[] buffer) {
        if (null == buffer)
            return null;
        else
            return new String(buffer);
    }
}

Related

  1. toString(byte[] theByteArray)
  2. fromBytes(byte[] buf)
  3. fromBytes(byte[] buf, int off, int len)
  4. bytes2String(byte[] value)
  5. byte2String(byte[] is)
  6. getStringForByte(byte[] bs)
  7. fromBytes(byte abyte0[])
  8. toString(byte[] b, int start, int end)
  9. Bcd2Str(byte[] b)