飛翔的起點

          從這里出發

          導航

          <2009年9月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          統計

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          byte數組和String之間的轉化

          JAVA里面關于byte數組和String之間的轉換問題

          把byte轉化成string,必須經過編碼。

          例如下面一個例子:

          import java.io.UnsupportedEncodingException;

          public class test{
           public static void main(String g[]) {
            String s = "12345abcd";
            byte b[] = s.getBytes();
            String t = b.toString();

            System.out.println(t);

           }
          }
          輸出字符串的結果和字符串s不一樣了.

          經過以下方式轉碼就可以正確轉換了:

          public class test{
           public static void main(String g[]) {
            String s = "12345abcd";
            byte b[] = s.getBytes();
            try {
             String t = new String(b);
             System.out.print(t);
            } catch (Exception e) {
             e.printStackTrace();
            }
           }
          }

          引用:
          String   str   =   "String"; 
                    byte[]   byte1   =   str.getBytes(); 
                    String   str1   =   new   String(byte1); 
                    byte[]   byte2   =   str1.getBytes(); 
                    String   str2   =   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輸出的不一樣呢? 
           

          String   str   =   "String"; 
                    byte[]   byte1   =   str.getBytes(); 
                    String   str1   =   new   String(byte1); 
                    byte[]   byte2   =   str1.getBytes(); 
            ---------- 
            注意byte1是str得到的byte數組,而byte2是另一個字符串str1得到的數組 
            他們本身也是兩個對象  
             
            直接打印實際上調用的是toString()方法,而toString()的默認實現是打印對象類型+hashCode()  
            [B表示byte數組  @表示之后的是地址  后面跟著的是hashCode,其實就是其虛擬機地址  
            

          posted on 2009-09-23 14:19 forgood 閱讀(3069) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 穆棱市| 毕节市| 威海市| 遂昌县| 英吉沙县| 通州市| 永丰县| 都昌县| 镇赉县| 无锡市| 印江| 乡城县| 淄博市| 西宁市| 连江县| 定西市| 平南县| 互助| 铁岭市| 重庆市| 历史| 奉新县| 韶山市| 永寿县| 甘南县| 上饶县| 合山市| 鹤峰县| 遂宁市| 宜州市| 榕江县| 渝北区| 海南省| 南充市| 竹溪县| 呼伦贝尔市| 日照市| 阿城市| 贡觉县| 沙洋县| 临漳县|