zoukankan      html  css  js  c++  java
  • 16进制转换字节数组工具类

    public class StringUtil {
    	public static String str = "696d706f7274";
    
    	public static void main(String[] args) {
    		System.out.println(new String(getBytes(str)));
    	}
    
    	public static boolean isOdd(String str) {
    		int length = str.length();
    		int isOdd = length % 2;
    		if (isOdd == 0)
    			return false;
    		else
    			return true;
    	}
    
    	public static byte[] getBytes(String str) {
    		boolean isOdd = isOdd(str);
    		int size = str.length();
    		if (isOdd) {
    			byte[] byteOdd = new byte[size / 2 + 1];
    			for (int j = 0, i = 0; i < str.length() - 1; i++) {
    				if (i % 2 == 0) {
    					byte a = getByteFromChar(str.charAt(i));
    					byte b = getByteFromChar(str.charAt(++i));
    					byteOdd[j++] = (byte) (a * 16 + b);
    				}
    
    			}
    			byteOdd[size / 2] = (byte) str.charAt(str.length() - 1);
    			return byteOdd;
    		} else {
    			byte[] byteEven = new byte[size / 2];
    			for (int j = 0, i = 0; i < str.length(); i++) {
    				if (i % 2 == 0) {
    					byte a = getByteFromChar(str.charAt(i));
    					byte b = getByteFromChar(str.charAt(++i));
    					byteEven[j++] = (byte) (a * 16 + b);
    				}
    
    			}
    			return byteEven;
    		}
    
    	}
    
    	public static byte getByteFromChar(char c) {
    		if (c == '0') {
    			return 0;
    		} else if (c == '1') {
    			return 1;
    		} else if (c == '2') {
    			return 2;
    		} else if (c == '3') {
    			return 3;
    		} else if (c == '4') {
    			return 4;
    		} else if (c == '5') {
    			return 5;
    		} else if (c == '6') {
    			return 6;
    		} else if (c == '7') {
    			return 7;
    		} else if (c == '8') {
    			return 8;
    		} else if (c == '9') {
    			return 9;
    		} else if (c == 'a') {
    			return 10;
    		} else if (c == 'b') {
    			return 11;
    		} else if (c == 'c') {
    			return 12;
    		} else if (c == 'd') {
    			return 13;
    		} else if (c == 'e') {
    			return 14;
    		} else if (c == 'f') {
    			return 15;
    		}
    		return -1;
    	}
    
    }
    


  • 相关阅读:
    mysql常用时间列表的查询——七天内、本月、本周、某天
    js取数组获取最大值的四种方式
    Mysql按周,按月,按日,按小时分组统计数据
    Mysql中的sum函数为null时的解决办法
    Maven 中 dependencyManagement 标签使用
    嵌入式printf函数运用基于ti 16位MCU
    md5实现对用户名与密码的保护
    c# md5 算法实现
    define a struct
    file.open异常处理
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6748795.html
Copyright © 2011-2022 走看看