大家好!·!~
我有个小问题 !~!~
客户要求的是 姓名限制在 10个字节, 不足的姓名加0;
          
    但是每个人姓名字节数不同。
     我用什么方法可以让 每个姓名字节数都保持在 10个字节。。
        小王 =   4个字节 要加 6个 0 ;
        黄晓明  =  6个字节  要加 4个 0;
  
   请问 用length 的方法 应该怎么取 谢谢!~!~(请大虾指教)发钱
           
       
         

解决方案 »

  1.   

    你可以通过正则表达式实现你需要的功能:$(\w?)(\w?)(\w?)(\w?)(\w?)(\w?)(\w?)(\w?)(\w?)(\w?).*
    使用Matcher对象将对象每组取出来。超过的可以忽略。在取的时候如果指定组的内容不存在,那么填为“0”还有其他方法,如
    判断字符串字节长度。
      

  2.   

    你得先确定字符编码方式吧。比如unicode是两个字节一个汉字,utf-8却是三个字节一个汉字。
    至于你说的加0,我没明白是什么意思。如果强行规定每个人的名字要占满多少个字节,那在数据库中可以设定的吧。如果非要像他说的这么加,取出来以后不还得把后面的0去掉?
      

  3.   


    确定过了 比如unicode是两个字节一个汉字,我是用来做 发送指令的!~!~懂了吧!~!~
    大虾  帮我写点吧!~!~实在是小弟愚钝!!~
      

  4.   

    byte[] name = "和平".getBytes();
    byte[] bytes = {0,0,0,0,0,0,0,0,0,0};
    System.arraycopy(name, 0, bytes, 0, name.length);
    试试
      

  5.   

    getBytes().length不就是你要的长度了?
      

  6.   


    public void isTen(String str){
      if(str.length()<=10){
    int i =str.length();
    int last=10-i;
    String addStr=new String[last];
    for(int j=0;j<last;j++){addStr[i]="0";
    String result =str+addStr[i];}
    }}没有时间去试代码,LZ自己试试。。
      

  7.   

    String name = "测试";
    byte[] src = name.getBytes();
    byte[] dest = new byte[10]; //结果
    byte[] temp = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    if (src.length <= 10) {
    for (int i = 0; i < src.length; i++) {
    dest[i] = src[i];
    }
    for (int i = src.length; i < 10; i++) {
    dest[i] = temp[i];
    }
    }
    for(int i = 0; i < dest.length; i++){
    System.out.print(dest[i] + ",");
    }
      

  8.   

    String.length() 不行吗?
    String。length()中汉字长度为1
      

  9.   


    如果用CHAR保存的话 其他部分会自动填充为空格 取出来的时候将用一种方式将空格都替换成0 可以么?