byte数组与字符串之间相互转换

我就是我 2023-10-01 18:44 49阅读 0赞

byte数组与字符串之间相互转换

  • 字符串转数组
  • 数组转字符串
    • 使用String类
    • 利用16进制字符串

字符串转数组

  1. public static void main(String[] args) {
  2. String str="失败是成功之母!";
  3. byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
  4. }

数组转字符串

使用String类

  1. public static void main(String[] args) throws UnsupportedEncodingException {
  2. String str="失败是成功之母!";
  3. byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
  4. String utf_8 = new String(bytes,StandardCharsets.UTF_8);
  5. System.out.println(utf_8);
  6. }

利用16进制字符串

先将字节数组转为16进制字符串,再将16进制转换成为string类型字符串

  1. /**
  2. * 将byte数组转为16进制字符串
  3. * @param bArr byte数组
  4. * @return 16进制字符串
  5. */
  6. public static String bytesToHexString(byte[] bArr){
  7. StringBuffer sb = new StringBuffer(bArr.length);
  8. String sTmp;
  9. for (int i = 0; i < bArr.length; i++) {
  10. sTmp = Integer.toHexString(0xFF & bArr[i]);
  11. if (sTmp.length() < 2) {
  12. sb.append(0);
  13. }
  14. sb.append(sTmp.toUpperCase());
  15. }
  16. return sb.toString();
  17. }
  18. /**
  19. * 将16进制字符串转为String类型字符串
  20. * @param hexStr
  21. * @return
  22. */
  23. public static String hexStringToString(String hexStr) {
  24. String str = "0123456789ABCDEF";
  25. char[] hexs = hexStr.toCharArray();
  26. byte[] bytes = new byte[hexStr.length() / 2];
  27. int n;
  28. for (int i = 0; i < bytes.length; i++) {
  29. n = str.indexOf(hexs[2 * i]) * 16;
  30. n += str.indexOf(hexs[2 * i + 1]);
  31. bytes[i] = (byte) (n & 0xff);
  32. }
  33. return new String(bytes);
  34. }

发表评论

表情:
评论列表 (有 0 条评论,49人围观)

还没有评论,来说两句吧...

相关阅读