目前字段中存储的字符串是““:0:1:2:23:245”
如果要全部替换成”:0:0001:0002:0023:0245“
有没有这样成批替换的方法?就是把用:分割的字符串全部转换成固定位数,不足的前面补0

解决方案 »

  1.   

    字符串是吧? 
    赞成你的想法。 用split 判断位数 然后添0  在连接
      

  2.   

    public class testformat
    {
    public static void main(String args[])
    {
    java.text.DecimalFormat format=new java.text.DecimalFormat("0000");
        System.out.println(format.format(3));
        System.out.println(format.format(500));
    }
    }
    运行看看效果先
      

  3.   

    import java.util.StringTokenizer;/**
    * @author 作者 E-mail:
    * @version 创建时间:Aug 11, 2009 5:18:59 PM
    * 类说明
    */
    public class Test {/**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
        Test t = new Test();
        System.out.println(t.getStr());

    public String getStr(){
    String str = ":0:1:2:23:245";
    StringTokenizer st = new StringTokenizer(str,":");
    String aa = new String();
    while(st.hasMoreTokens()){
    String a = st.nextToken();
    int al = a.length();
    int bl=0;
    if(al<4)
    bl = 4-al;
    StringBuffer c = new StringBuffer("0");

    if(c.length()!=bl){
    c.append("o");
    }
    aa=c.toString()+a;
    }
    return aa;
    }
      

  4.   

    String[] str = yourString.split(":");
    for(int i=0;i<str.length;i++){
      if(str[i].length()<4){
         str[i]=addZero(4-str[i]length())+str[i];//addZero(int i)你可以自己写个方法
      }
    }String addZero(int number){
      String st = "";
      for(int i=0;i<number;i++){
        st+="0";
      }
      return st;
    }
      

  5.   

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.StringTokenizer;
    /**
     * @author 作者 E-mail:
     * @version 创建时间:Aug 11, 2009 5:18:59 PM 类说明
     */ 
    public class Test { 
    /**
     * @param args
     */ 
    public static void main(String[] args) { 
    // TODO Auto-generated method stub
        Test t = new Test(); 
        List li = t.getStr();
        Iterator it = li.iterator();
        while(it.hasNext()){
         String str = (String)it.next();
         System.out.println("str is:"+str);
        }

    public List getStr(){ 
    List list = new ArrayList();
    String str = ":0:1:2:23:245"; 
    StringTokenizer st = new StringTokenizer(str,":"); 
    String aa = new String(); 
    while(st.hasMoreTokens()){ 
    String a = st.nextToken(); 
    int al = a.length(); 
    int bl=0; 
    if(al <4) 
    bl = 4-al; 
    StringBuffer c = new StringBuffer("0"); if(c.length()!=bl){ 
    c.append("0"); 

    aa=c.toString()+a; 
    list.add(aa);

    return list; 
    }
    }
      

  6.   

    好像java1.5以后可以直接printf()方法
    printf("%4s:",str); 我具体也没怎么研究,你可以试着写下
      

  7.   


         DecimalFormat format=new jDecimalFormat("0000");
                String s=":0:1:2:23:245";
          String ss[]=s.split(":");
          for(int i=0;i<ss.length;i++){ 
            int sss=0;
          if(!ss[i].equals("")){
          sss=Integer.parseInt(ss[i]);
          } 
          System.out.println(format.format(sss));
          }
      

  8.   

    这个是准确的:你运行一下
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.StringTokenizer;/**
     * @author 作者 E-mail:
     * @version 创建时间:Aug 11, 2009 5:18:59 PM 类说明
     */
    public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Test t = new Test();
    List li = t.getStr();
    Iterator it = li.iterator();
    while (it.hasNext()) {
    String str = (String) it.next();
    System.out.println("str is:" + str);
    }
    } public List getStr() {
    List list = new ArrayList();
    String str = ":0:1:2:23:245";
    StringTokenizer st = new StringTokenizer(str, ":");
    String aa = new String();
    while (st.hasMoreTokens()) {
    String a = st.nextToken();
    int al = a.length();
    int bl = 0;
    if (al < 4)
    bl = 4 - al;
    StringBuffer c = new StringBuffer("0");
    for (int i = 0; i < bl; i++) {
    if (c.length() < bl) {
    c.append("0");
    }
    if (c.length() == bl) {
    aa = c.toString() + a;
    list.add(aa);
    break;
    }
    }
    }
    return list;
    }
    }
      

  9.   

    import java.text.DecimalFormat;
    import java.text.NumberFormat;public class ACM { public static void main(String[] args) {

    String s = "0:1:2:23:245.45";

    String[] arr = s.split(":");

    NumberFormat format = new DecimalFormat("0000"); StringBuffer sb = new StringBuffer();

    for(int i = 0; i < arr.length; i++) {

    sb.append(format.format(Double.parseDouble(arr[i])));

    if(i != arr.length - 1) {
    sb.append(':');
    }
    }

    System.out.println(sb.toString());
    }

    }
      

  10.   


    import java.text.DecimalFormat; 
    import java.text.NumberFormat; public class Test{ public static void main(String[] args) { String s = "0:1:2:23:245.45"; String[] strs = s.split(":"); NumberFormat format = new DecimalFormat("0000"); StringBuffer sb = new StringBuffer(); for(int i = 0; i < strs[code=Java].length; i++) { sb.append(format.format(Double.parseDouble(arr[i]))); if(i != strs.length - 1) { 
    sb.append(':'); 

    } System.out.println(sb.toString()); 
    } } [/code]