字节流、字符串、16进制字符串转换__Java(转)

时间:2021-07-30 16:00:20
  1. /**
  2. * @Package:
  3. * @ClassName:TypeConversion
  4. * @Description:字节流、字符串、16进制字符串转换
  5. * @author:xk
  6. * @date:Jan 8, 2013 5:00:08 PM
  7. */
  8. public class TypeConversion {
  9. /**
  10. * @Title:bytes2HexString
  11. * @Description:字节数组转16进制字符串
  12. * @param b
  13. *            字节数组
  14. * @return 16进制字符串
  15. * @throws
  16. */
  17. public static String bytes2HexString(byte[] b) {
  18. StringBuffer result = new StringBuffer();
  19. String hex;
  20. for (int i = 0; i < b.length; i++) {
  21. hex = Integer.toHexString(b[i] & 0xFF);
  22. if (hex.length() == 1) {
  23. hex = '0' + hex;
  24. }
  25. result.append(hex.toUpperCase());
  26. }
  27. return result.toString();
  28. }
  29. /**
  30. * @Title:hexString2Bytes
  31. * @Description:16进制字符串转字节数组
  32. * @param src
  33. *            16进制字符串
  34. * @return 字节数组
  35. * @throws
  36. */
  37. public static byte[] hexString2Bytes(String src) {
  38. int l = src.length() / 2;
  39. byte[] ret = new byte[l];
  40. for (int i = 0; i < l; i++) {
  41. ret[i] = (byte) Integer
  42. .valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
  43. }
  44. return ret;
  45. }
  46. /**
  47. * @Title:string2HexString
  48. * @Description:字符串转16进制字符串
  49. * @param strPart
  50. *            字符串
  51. * @return 16进制字符串
  52. * @throws
  53. */
  54. public static String string2HexString(String strPart) {
  55. StringBuffer hexString = new StringBuffer();
  56. for (int i = 0; i < strPart.length(); i++) {
  57. int ch = (int) strPart.charAt(i);
  58. String strHex = Integer.toHexString(ch);
  59. hexString.append(strHex);
  60. }
  61. return hexString.toString();
  62. }
  63. /**
  64. * @Title:hexString2String
  65. * @Description:16进制字符串转字符串
  66. * @param src
  67. *            16进制字符串
  68. * @return 字节数组
  69. * @throws
  70. */
  71. public static String hexString2String(String src) {
  72. String temp = "";
  73. for (int i = 0; i < src.length() / 2; i++) {
  74. temp = temp
  75. + (char) Integer.valueOf(src.substring(i * 2, i * 2 + 2),
  76. 16).byteValue();
  77. }
  78. return temp;
  79. }
  80. /**
  81. * @Title:char2Byte
  82. * @Description:字符转成字节数据char-->integer-->byte
  83. * @param src
  84. * @return
  85. * @throws
  86. */
  87. public static Byte char2Byte(Character src) {
  88. return Integer.valueOf((int)src).byteValue();
  89. }
  90. /**
  91. * @Title:intToHexString
  92. * @Description:10进制数字转成16进制
  93. * @param a 转化数据
  94. * @param len 占用字节数
  95. * @return
  96. * @throws
  97. */
  98. private static String intToHexString(int a,int len){
  99. len<<=1;
  100. String hexString = Integer.toHexString(a);
  101. int b = len -hexString.length();
  102. if(b>0){
  103. for(int i=0;i<b;i++)  {
  104. hexString = "0" + hexString;
  105. }
  106. }
  107. return hexString;
  108. }
  109. public static void main(String args[]) {
  110. System.out.println(hexString2String("3133383131313536373838"));
  111. }
  112. }

转自:http://hunray.iteye.com/blog/1849585