如我的byte数组数据为{1,2,97,98,96,98}我想转成String ,其中97按照ascii表为字符a
,98为字符c,应该怎么装换?
我可不想String转换为1297989698的,这样没办法看。
谢谢。

解决方案 »

  1.   

    byte[] a = {1,2,97,98,96,98} ;
            String s = new String(a) ;
      

  2.   


    // 字节数据转换为可打印字符串
    // 如:{0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} --> "C8329BFD0E01" 
    // pSrc: 源数据指针
    // pDst: 目标字符串指针
    // nSrcLength: 源数据长度
    // 返回: 目标字符串长度
    int Bytes2String(const unsigned char* pSrc, char* pDst, int nSrcLength)
    {
    const char tab[]="0123456789ABCDEF";    // 0x0-0xf的字符查找表
        
        for(int i=0; i<nSrcLength; i++)
        {
            // 输出低4位
            *pDst++ = tab[*pSrc >> 4];
        
            // 输出高4位
            *pDst++ = tab[*pSrc & 0x0f];
        
            pSrc++;
        }
        
        // 输出字符串加个结束符
        *pDst = '\0';
        
        // 返回目标字符串长度
        return nSrcLength * 2;
    }
      

  3.   

    就这样就行呀!
           char[] c = new char[] {1,2,97,98,96,98};
           System.out.println(new String(c));
    输出结果是: ab`b
      

  4.   

    都不行啊。
    函数传进来的是byte数组
      

  5.   

    byte[] a = {1,2,97,98,96,98} ;
    StringBuffer s1=new StringBuffer(128);
    s1.append("the final result:");
    for (int i=0;i<a.length ;i++ )
    {
    s1.append((char)a[i]); }
    System.out.println(s1);