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

Java代码  

  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

时间: 2024-08-11 03:25:17

字节流、字符串、16进制字符串转换__Java(转)的相关文章

Java中byte与16进制字符串的互相转换

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

iOS 将16进制字符串转换成UIColor

#pragma mark - 将16进制字符串转换成 UIColor - (UIColor *)generateColorObjectWithHex:(NSString *)hexString { unsigned int red = 0, green = 0, blue = 0; NSRange range = {0, 2}; range.location = 0; NSString *redString = [hexString substringWithRange:range]; NSSc

将16进制字符串转换成16进制数据

var tb1 = Tb1.Text; if (string.IsNullOrEmpty(tb1)) { tb1 = "0000"; } var s1 = tb1.Substring(0, 2); var int_1 = Convert.ToInt32(s1, 16); var s2 = tb1.Substring(2, 2); var int_2 = Convert.ToInt32(s2, 16); var bt1 = Convert.ToByte(int_1); var bt2 =

iOS 16进制字符串转换成int十进制

NSRange rangeErr; rangeErr.location = 6; rangeErr.length = 2; NSString *strings = [value substringWithRange:rangeErr]; int errCode = (int)strtoul([strings UTF8String],0,16);  //16进制字符串转换成int NSString *ascStr = [NSString stringWithFormat:@"%c",re

Java中byte与16进制字符串的互相转换(转)

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

C# byte[] 转换16进制字符串

1.byte[] 转换16进制字符串 1.1 BitConverter方式 1 var str = DateTime.Now.ToString(); 2 var encode = Encoding.UTF8; 3 var bytes = encode.GetBytes(str); 4 var hex = BitConverter.ToString(bytes, 0).Replace("-", string.Empty).ToLower(); 5 Console.WriteLine(he

C# 校验并转换 16 进制字符串到字节数组

问题 最近在进行硬件上位机开发的时候,经常会遇到将 16 进制字符串转换为 byte[] 的情况,除了这种需求以外,还需要判定一个字符串是否是有效的 16 进制数据. 解决 字符串转 byte[] 的情况可以使用 Convert.ToByte(string) 来解决,16 进制数据的判定则可以结合正则和长度来进行处理. 在这里我是只接受以下两种形式的 16 进制字符串,并对其进行验证和转换. AA 12 34 56 78 06 AA-12-34-56-78-06 下面就是代码: public s

C#字符串和16进制字符串之间的转换

将字符串编码成 16进制 字符串表示: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { // 将字符串转换成16进制表示: // 先将字符串转换成 byte 数组: // (1).如果是

Java 将字节转化为16进制字符串

很多时候我们需要将字节数组转化为16进制字符串来保存,例如做I/O字节流操作的时候,尤其在很多加密的场景中应用都比较广泛. Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte 转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 从上面可以看出