这种东西都是数据库字段自己填满精度的空格
我们在代码里面不用过问
使用String的trim()掉就行了

解决方案 »

  1.   

    强烈建议不要使用char用varchar2吧,用char老是帮你添空格...........
      

  2.   

    str.trim():
      Returns:
    A copy of this string with leading and trailing white space removed, or this string if it has no leading or trailing white space.
      

  3.   

    当长度不够时,自动填入了空格..
    对得到的数据进行使用String的trim()..
      

  4.   

    CHAR和VARCHAR的区别在于CHAR是固定长度,只要你定义一个字段是CHAR(10),那么不论你存储的数据是否达到了10个字节,它都要占去10个字节的空间;而VARVHAR则是可变长度的,实际长度是它的值的(实际长度+1)
      

  5.   

    现在的问题是:
    我的一个字段的值只可能是'0'或者'1',使用的char(1)类型,当取出之后发现其值变成"1__"或"0__",即增加了两个空格。并且这种情况只出现在定义"statement"时使用"ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY "的情况下,又不敢贸然使用trim(),很是头痛。
      

  6.   

    你在从数据库取数据是去掉空格就行了(如Oracle里用RTRIM),要是能改的话用varchar类型最好
      

  7.   

    对了顺便说一下,用char在处理半角和全角字符时要小心
      

  8.   

    可是楼主是char(2)啊!最多2位,怎么会变3位啊?
    又不是char(3)
      

  9.   

    如果是varchar(2)的话,数据库倒是可能存的3位呢!不过也不会被取到第3位的8?
      

  10.   

    实际情况是:
    字段char(n),而取出之后得到的字符串变成:字段值+ (n * 2)个空格。一直不能理解为什么取出之后会增加两倍长的空格。
      

  11.   

    我们现在用Oracle 8.17
    然后有一列是char(6),用的preparedStatement还没用ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY 结果硬是把一个100000给改成了100000后面跟了六个空格,害的我郁闷的半天,以后坚决不用char,用varchar2
      

  12.   

    对 char是固定长度的, vachar2是可变长度的!最好谨慎用char
      

  13.   

    实际情况是:
    字段char(n),而取出之后得到的字符串变成:字段值+ (n * 2)个空格。一直不能理解为什么取出之后会增加两倍长的空格。
    ---------------------------应该跟你数据库选择的字符集有关
    说明你机器上每个char都占了2个字节,比如中文!换字符集成英文iso-8859-1