yes,use method String.valueOf

解决方案 »

  1.   

       好象不行也,
    譬如:
    在Server端将一个字符串"ying"先转换成byte数组,然后发送给Client
    在Client端写了如下一段程序,其中byteTOchar函数的说明见下面:
                    String[] s = new String[4];
                    char[] c = null;
                    for(int i=0; i<4; i++) {
                        c = (byteToChar(recvBuf[i], 16));
                        s[i] = java.lang.String.valueOf(c);但是s[i]输出的是79 69 6E 67,而不是字符
    byteToChar函数的说明:
        public static char[] byteToChar(byte dataByte , int radix)
        {
            char[] result = null;
            int tmpInt;
            switch(radix)
            {
                case 2:
                break;
                case 4:
                break;
                case 10:
                break;
                case 16:
                    result = new char[2];
                    tmpInt = (dataByte & 0xf0)>>4;
                    result[0]= DecToHex(tmpInt);
                    tmpInt = (dataByte & 0x0f);
                    result[1]= DecToHex(tmpInt);
                break;
                
            }
            return result;
        }
     
        
        
        public static char DecToHex(int D)
        {
            if ( D >= 0 && D <= 9 )
                return ((char)(D+48));
            
            switch(D)
            {
                case 10:
                return('A');
                case 11:
                return('B');
                case 12:
                return('C');
                case 13:
                return('D');
                case 14: 
                return('E');
                case 15: 
                return('F');
            }
            return 0;
        }
      

  2.   

    String.valueOf : the parameter must be a int value( byte variant also can work).
      byte b=31;
      out.println(String.valueOf(b));//result is "31"
    So your program might like this:                String[] s = new String[4];
                    for(int i=0; i<4; i++) {
                        s[i] = java.lang.String.valueOf(recvBuf[i]);moreover,if you want to use a char variant as the parameter, please convert it to type int first .
                        s[i] = java.lang.String.valueOf(int(c[i]);
     
    >>然后怎么才能把这个字节数组再还原到String呢
    use new String(byte[]) 
      

  3.   

    So your program might like this:                String[] s = new String[4];
                    for(int i=0; i<4; i++) {
                        s[i] = java.lang.String.valueOf(recvBuf[i]);这样输出的结果仍然是Ascii码.
      

  4.   

    ok,i see ,you might use new String(recvBuf) simply .
      

  5.   

    我写过,可以给你一份代码,要的话请OICQ我22181113
      

  6.   

    to borz: 如果可以的话,请发邮件到[email protected]
    thank you.
      

  7.   

    char c=65
    string s=c+c
    print s="AA"