循环遍历每对两个字符并分别转换每对字符:
byte[] bytes = new byte[str.length()/2];
for( int i = 0; i < str.length(); i+=2 )
bytes[i/2] = ((byte)Character.digit(str.charAt(i),16))<<4)+(byte)Character.digit(str.charAt(i),16);
Run Code Online (Sandbox Code Playgroud)
我没有测试过这段代码(我没有编译器和我一起)但是我希望我能通过这个想法.减法/加法简单地将'A'转换为数字10,将'B'转换为11,等等.位移<< 4将第一个十六进制数字移动到正确的位置.
编辑:重新思考一下后,我不确定你是否在问正确的问题.您想将"DE"转换为{0xDE},还是转换为{0x44,0x45}?后者更有用,前者更像是家庭作业问题类型的问题.
| 归档时间: |
|
| 查看次数: |
6869 次 |
| 最近记录: |