java数据转换--十六进制

在一些应用中需要将数据包中的十六进制数进行转换,或者数据加密后传送,这里只针对十六进制与字符串在java中的简单转换记录:

 

package com.xiaoli.test;

public class EncodeT {
	
//	 转化字符串为十六进制编码 
	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 str; 
	} 
//	 转化十六进制编码为字符串 
	public static String toStringHex(String s) 
	{ 
		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){
		String test = "47 45 54 20 2F 64 61 74 61 2F 62 72 66 76 65 72 73 69 6F 6E"+ 
		"2E 78 6D 6C 20 48 54 54 50 2F 31 2E 31 0D 0A 43 6F 6E 6E 65"+ 
		"63 74 69 6F 6E 3A 20 43 6C 6F 73 65 0D 0A 41 63 63 65 70 74"+ 
		"3A 20 74 65 78 74 2F 68 74 6D 6C 2C 61 70 70 6C 69 63 61 74"+ 
		"69 6F 6E 2F 78 68 74 6D 6C 2B 78 6D 6C 2C 61 70 70 6C 69 63"+ 
		"61 74 69 6F 6E 2F 78 6D 6C 3B 71 3D 30 2E 39 2C 2A 2F 2A 3B"+ 
		"71 3D 30 2E 38 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 4D"+ 
		"6F 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D 70 61 74 69 62"+ 
		"6C 65 3B 20 4D 53 49 45 20 37 2E 30 3B 20 57 69 6E 64 6F 77"+ 
		"73 20 4E 54 20 35 2E 31 3B 4D 69 73 65 72 20 52 65 70 6F 72"+ 
		"74 29 0D 0A 48 6F 73 74 3A 20 6D 69 73 65 72 75 70 64 61 74"+ 
		"65 2E 61 6C 69 79 75 6E 2E 63 6F 6D 0D 0A 43 61 63 68 65 2D"+ 
		"43 6F 6E 74 72 6F 6C 3A 20 6E 6F 2D 63 61 63 68 65 0D 0A 0D"+ 
		"0A";  
		String test2 = test.replaceAll(" ", "");
		String res = toStringHex(test2);
		System.out.println(res);
		
		String test4 ="g ";
		String test5 = toHexString(test4);
		System.out.println(test5);
		
	}
}


运行结果为:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;Miser Report)
Host: miserupdate.aliyun.com
Cache-Control: no-cache


6720

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值