刚做JAVA,很多不懂。请教大家。
我想定义一个长度为100的STRING jtzz(家庭住址),存放信息之后,因为肯定家庭住址不到100位,
要求:
jtzz前面存放的就是实际用户的家庭住址,不到100的部分,用空格补齐。
如String jtzz = "                        ";
  赋值之后jtzz = "北京海淀                   ";
就是这样的一个效果。
谢谢。

解决方案 »

  1.   

    jtzz = "                        "; 
    赋值之后
    jtzz = "北京海淀                   ";
      

  2.   

    jtzz.length()的值始终保持100不变
      

  3.   

    LZ确信是String.length而不是String.getBytes().length?
    写一个方法String toSizeString(String src, int size) {
        if (src.length()>=size){
            return src; //如果超过要截断的话在这里截断
        }    for (int i=src.length; i<size; i++) {
            src += " ";
        }
        return src;
    }
      

  4.   

    用个循环把这个数组全部赋值为空格,然后把你想要的地址用StringBuffer里的insert插入进去。
    插入到最前面当然insert的第一个参数就是0,第二个参数随你便啦
      

  5.   

    可以这样:public class String1 {
    public static void main(String[] args) {
    StringBuilder s = new StringBuilder();
    s.append("aaa");
    s.setLength(100);
    System.out.println(s.length()); System.out.println(s.toString());
    }
    }
      

  6.   

    public class Test5 {    public static void main(String[] args) {
            String str = "1234567890";
            String s = toFixLengthStr(str, 40);
            System.out.println(s + "|");
            printRule(50);
        }
        
        public static String toFixLengthStr(String str, int len) {
            if(str == null || str.length() >= len) {
                return str;
            }
            char[] chs = new char[len];
            char[] schs = str.toCharArray();
            for(int i = 0; i < len; i++) {
                chs[i] = i < schs.length ? schs[i] : ' ';
            }
            return new String(chs);
        }
        
        private static void printRule(int len) {
            for(int i = 1; i <= len; i++) {
                System.out.print(i % 10);
            }
            System.out.println();
        }
    }
      

  7.   

    感谢wzw9881 的回复。我会马上试验一下。
    由于本人刚开始学java,很多库函数,都不了解。所以很傻的问题都拿来问了。谢谢大家帮助。关于有朋友问为什么要这样定义字符串,似乎很傻。
    其实不是。这是一种格式。
    比如我们定义一个客户,客户的所有信息。包括姓名,性别,邮箱,家庭住址。
    放在报文里面。那么必须得定长,这样的话我就知道,比如100-200位是这个客户的家庭地址,
    我就知道201-240位是这位客户的邮箱,240-280位是这位客户的爱好。等等。谢谢大家回复。我会马上研究一下大家的回复。谢谢
      

  8.   

    不要使用String 
    尽量使用BufferedString
      

  9.   

    可以用StringBuffer或StringBuilder解决 
      

  10.   

         这种问题我今天也做了一次(我要处理的是byte,不够补空格:
          private static byte[] initByte(byte[] src,int length){
    byte[] bb = new byte[length];
    for(int i=0;i<bb.length;i++)
    bb[i] = ' ';
    System.arraycopy(src, 0, bb, 0, src.length>=length?length:src.length);
    return bb;
    }
             byte[] b_name=initByte("lijie".getBytes(),8);
      

  11.   

             我用它是为了用DataOutputStream往文件中写一定结构的数据,傻不?
      

  12.   

    class jtzz
    {
    String c;
    final static int len=100;
    public jtzz(String a)
    {
    int b=a.length();
    while(b<len)
    {
     a=a+"\u0000";
    b++;
    }
    c=a;
    System.out.println("the string is "+c);
    }
    public static void main(String args[])
    {
    jtzz xx=new jtzz("北京海淀");
    }
    }
    这样就可以了,
      

  13.   

    前段时间已经解决了。
    我的需求是大型机的通信问题。在java中。
    非常统一ty_tarena_pger的做法。
    我的做法如下:
    byte[] des = new byte[998+139];
    byte[] tmp = new byte[139];
    byte[] tmpbyte = commarea.getBytes("935");
    System.arraycopy(tmpbyte,0,tmp,0,tmpbyte.length);
    System.arraycopy(tmp,0,des,0,139);

    tmp = new byte[16];
    tmpbyte = khh.trim().getBytes("935");
    System.arraycopy(tmpbyte,0,tmp,0,tmpbyte.length);
    System.arraycopy(tmp,0,des,139+0,16);

    tmp = new byte[6];
    tmpbyte = zjlx.trim().getBytes("935");
    System.arraycopy(tmpbyte,0,tmp,0,tmpbyte.length);
    System.arraycopy(tmp,0,des,139+16,6);
    这样通过tmp把des填充满。将des作为参数,插入到数据库中。
    这样做是将中文,英文,数字都转换成byte[]类型,然后以byte[]传递到数据库中。就保证了中文的顺利插入,为以后的读取中文
    提供了方便。谢谢大家的回复。
      

  14.   

    呵呵。我们公司都是这样做的:)
    而且据我所知,同类型,同行的所有公司,都有这样做的。
    传送数据,信息的,主流是两种方法,一种是我的这种
    一种是通过XML的报文传送的
      

  15.   


    呵呵。我们公司都是这样做的:) 
    而且据我所知,同类型,同行的所有公司,都有这样做的。 
    传送数据,信息的,主流是两种方法,一种是我的这种 
    一种是通过XML的报文传送的