最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java模擬PHP的pack和unpack類

 更新時間:2016年04月13日 15:36:40   作者:Wanes  
這篇文章主要介紹了java模擬PHP的pack和unpack類的相關(guān)資料,需要的朋友可以參考下

本文實例為大家分享了java模擬PHP的pack和unpack類的具體代碼,供大家參考,具體內(nèi)容如下

package qghl.intp.util;
 
import java.io.IOException;
import java.io.InputStream;
 
public class PackUtil{
 
    /**
     * 打包字符串
     * 類似php中pack在java中的實現(xiàn)
     *
     * @param str
     * @return
     */
    public static byte[] pack(String str) {
      int nibbleshift = 4;
      int position = 0;
      int len = str.length() / 2 + str.length() % 2;
      byte[] output = new byte[len];
      for (char v : str.toCharArray()) {
        byte n = (byte) v;
        if (n >= '0' && n <= '9') {
          n -= '0';
        } else if (n >= 'A' && n <= 'F') {
          n -= ('A' - 10);
        } else if (n >= 'a' && n <= 'f') {
          n -= ('a' - 10);
        } else {
          continue;
        }
        output[position] |= (n << nibbleshift);
 
        if (nibbleshift == 0) {
          position++;
        }
        nibbleshift = (nibbleshift + 4) & 7;
      }
 
      return output;
    }
 
    /**
     * 16進制的字符解壓 類php中unpack
     *
     * @param is
     * @param len
     * @return
     * @throws IOException
     */
    public static String unpack(InputStream is, int len) throws IOException {
      byte[] bytes = new byte[len];
      is.read(bytes);
      return unpack(bytes);
    }
 
    /***
     * 16進制的字符解壓 類php中unpack
     * @param bytes
     * @return
     */
    public static String unpack(byte[] bytes) {
      StringBuilder stringBuilder = new StringBuilder("");
      if (bytes == null || bytes.length <= 0) {
        return null;
      }
      for (int i = 0; i < bytes.length; i++) {
        int v = bytes[i] & 0xFF;
        String hv = Integer.toHexString(v);
        if (hv.length() < 2) {
          stringBuilder.append(0);
        }
        stringBuilder.append(hv);
      }
      return stringBuilder.toString();
    }
  }

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)java程序設(shè)計有所幫助。

相關(guān)文章

最新評論

丹凤县| 临泉县| 吴堡县| 嵊州市| 阜宁县| 罗源县| 木兰县| 唐山市| 叶城县| 富民县| 湖南省| 涞源县| 定日县| 大英县| 阜南县| 定结县| 壤塘县| 永丰县| 来安县| 乐东| 万盛区| 柘荣县| 印江| 资溪县| 米脂县| 图们市| 道孚县| 阳原县| 柘荣县| 成都市| 和龙市| 江永县| 湟中县| 乐安县| 云龙县| 兴隆县| 桂阳县| 山阳县| 昭苏县| 清水县| 肃南|