zoukankan      html  css  js  c++  java
  • Java中实现字符串与十六进制编码相互转换

    //转化字符串为十六进制编码
    public static String toHexString(String s)   
    {   
    	String str="";   
    	
    	for (int i=0;i<s.length();i++)   
       	{   
    		int ch = (int)s.charAt(i);   
    		String s4 = Integer.toHexString(ch);   
    		str = str + s4; 
       	}   
       	return "0x" + str;//0x表示十六进制
    }
    
    //转换十六进制编码为字符串
    public static String toStringHex(String s)
    {
    	if("0x".equals(s.substring(0, 2)))
    	{
    		s =s.substring(2);
    	}
    	byte[] baKeyword = new byte[s.length()/2];
       	for(int i = 0; i < baKeyword.length; i++)
       	{
          		try{
           		baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16));
          	}
          	catch(Exception e){
          		e.printStackTrace();
          	}
       }
        
    	try 
       	{
        		s = new String(baKeyword, "utf-8");//UTF-16le:Not
    	} 
       	catch (Exception e1){
        		e1.printStackTrace();
       	} 
       	return s;
    }
    
    //=====================
    //下面做个测试
    public static void main(String[] args) throws Exception
    {
    	String str = "test";
    	printHexString(str.getBytes());
    }
    
    public static void printHexString( byte[] b) { 
    	for (int i = 0; i < b.length; i++) { 
       	String hex = Integer.toHexString(b[i] & 0xFF); 
       	if (hex.length() == 1) { 
       		hex = '0' + hex; 
       	} 
       	System.out.print(hex.toUpperCase() ); 
       	} 
    }
    
    
    //输出结果:74657374
     
  • 相关阅读:
    os.environ()详解
    查看django setting 源码
    FBV or CBV django settings 源码 模板层语法 摸板的继承 摸板的导入
    jq
    centos安装docker
    idea mapper报红解决
    Method has too many Body parameters
    Gradle安装配置
    itext生成PDF报错java.io.IOException: The document has no pages
    数字千分位
  • 原文地址:https://www.cnblogs.com/rocker/p/1661786.html
Copyright © 2011-2022 走看看