zoukankan      html  css  js  c++  java
  • 深入 JAVA里面关于byte数组和String之间的转换问题

    把byte转化成string,必须经过编码。 
      例如下面一个例子: 
      

    importjava.io.UnsupportedEncodingException; 
      publicclass test{ 
      publicstatic void main(String g[]) { 
      Strings = "12345abcd"; 
      byteb[] = s.getBytes(); 
      Stringt = b.toString(); 
      System.out.println(t); 
      } 
      } 


      输出字符串的结果和字符串s不一样了. 
      经过以下方式转码就可以正确转换了: 
      
    publicclass test{ 
      publicstatic void main(String g[]) { 
      Strings = "12345abcd"; 
      byteb[] = s.getBytes(); 
      try{ 
      Stringt = new String(b); 
      System.out.print(t); 
      }catch (Exception e) { 
      e.printStackTrace(); 
      } 
      } 
      } 

     Stringstr = "String"; 
      byte[]byte1 = str.getBytes(); 
      Stringstr1 = new String(byte1); 
      byte[]byte2 = str1.getBytes(); 
      Stringstr2 = new String(byte2); 
      System.out.println("str<<<"+ str); 
      System.out.println("byte1<<<"+ byte1); 
      System.out.println("str1<<<"+ str1); 
      System.out.println("byte2<<<"+ byte2); 
      System.out.println("str2<<<"+ str2); 


     
      ------------------------------------- 
      输出结果 
      str<<<String 
      byte1<<<[B@192d342 
      str1<<<String 
      byte2<<<[B@6b97fd 
      str2<<<String 
      想请教为什么两个byte输出的不一样呢? 
      Stringstr = "String"; 
      byte[]byte1 = str.getBytes(); 
      Stringstr1 = new String(byte1); 
      byte[]byte2 = str1.getBytes(); 
      ---------- 
      注意byte1是str得到的byte数组,而byte2是另一个字符串str1得到的数组 
      他们本身也是两个对象 
      直接打印实际上调用的是toString()方法,而toString()的默认实现是打印对象类型+hashCode() 
      [B表示byte数组 
      @表示之后的是地址 
      后面跟着的是hashCode,其实就是其虚拟机地址 
      所以这个结果也就是顺理成章了.

  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314213.html
Copyright © 2011-2022 走看看