负的二进制数你是怎么从String中传出来的?

解决方案 »

  1.   

    ASCII码只到127,负的值你想表示成什么? 如 -23,表示成"-23"?
      

  2.   

    我是从bolb字段中读到byte【】里去的,所以会有负的,但是就是要原样转成string,否则就没有用了。
    所以才焦头烂额。
      

  3.   

    如果是string的话,不可能转成负的啊?
      

  4.   

    上次回答过你了
    最好用StringBuffer这个类
    详细用法请看文档
      

  5.   

    StringBuffer和string在这方面没有什么区别的啊?
    一个是可变长的,一个是定长的。对我来说没有用啊。
      

  6.   

    给个例子吧!首先,什么字符会getBytes()后得到负数?
      

  7.   

    楼主的意思是不是byte首位是符号位?
      

  8.   

    String s = new String(byte[]);
      

  9.   

    负的转成int先处理一下然后在转,我就是这么做的
      

  10.   

    我是从blob字段中取出来的一串狗屁不通的东西,所以会有负的。我在楼上说过的。to  vcshcn(黑天的星星) : 你说的处理怎么处理,你做过的,请帖出代码吧。
      

  11.   

    自己做一个byte转无符号int的方法如下:
    private int b2i (int n){
    if (n < 0) {
    n = n + 256;
    return n;
    }
    return n;
    }
    以上用来转换出无符号整数,然后用:
    Character.toString((char)(b2i(bstr[i])))
    就得到你要的字符啦
    依此类推:做一个for循环就可以把bstr数组里面所有的数据转出来了
      

  12.   

    String(byte[] bytes, String charsetName) 
              Constructs a new String by decoding the specified array of bytes using the specified charset.byte[] getBytes(String charsetName) 
              Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.
      

  13.   

    还是觉得不理解,如果是char的话为什么当初不用clob?
      

  14.   

    数据库中好象没有clob字段的。
      

  15.   

    如果是Clob类型,你可以直接得到它的值的,何苦转变为byte[]呢?
    String str = rs.getClob("column").getSubString(1,(int)rs.getClob("column").length());
      

  16.   

    因为负值不管如何你也看不到,不如...
    byte[] bytes=...;
    StringBuffer buf = new StringBuffer();
    for(int i = 0; i < bytes.length; i++){
      byte b= bytes[i];
      if(b < 0)
         buf.append("["+b+"]");
      else
         buf.append(b);
    }