本帖最后由 pumanchawulaowu 于 2010-04-26 08:34:21 编辑

解决方案 »

  1.   

    String ip = "210.2.1.90";
    String[] ipArray = ip.split("\\."); String a = String.format("%03d", Integer.parseInt(ipArray[0]));
    String b = String.format("%03d", Integer.parseInt(ipArray[1]));
    String c = String.format("%03d", Integer.parseInt(ipArray[2]));
    String d = String.format("%03d", Integer.parseInt(ipArray[3]));

    String usrIp = a+"."+b+"."+ c + "." + d;
      

  2.   

    public class DealIp {
      public String addZero(String ip){
       String result="";        //用保存处理后的结果
       String []array=ip.split("\\.");     //这个函数将传入的字符串根据这个小点来分解,因为这个点式一个转义字符,所以需要写成"\\."
       for(int i=0;i<array.length;i++){
        while(array[i].length()<3){    //一共被分成了四个字符串,字符串里已经没有了小点,如果一个字符串的长度小于三,那么就在前面加零
         array[i]="0"+array[i];
        }
        if(i!=array.length-1){        //加完后,再继续在后面加上一个小点,因为最后一个不需要加,所以用if控制一下
        array[i]=array[i]+".";
        }
       }
       for(int i=0;i<array.length;i++){
        result+=array[i];              //将处理好的四个字符串连起来,这四个分别是 062.  004.  022.  115 
       }
       return result;
      }
          public static void main(String args[]){
           DealIp deal=new DealIp();
           System.out.println(deal.addZero("62.4.22.115"));
          }
    }  0
      

  3.   

    我把2楼的修改了一下,用javap试了一下,这样可能好些:public class Test1 {
    public static void main(String[] args) {
    String ip = "210.2.1.90";
    String[] ipArray = ip.split("\\."); StringBuilder s = new StringBuilder(); for(int i = 0; i < ipArray.length; i++) {
    s.append(String.format("%03d", Integer.parseInt(ipArray[i])) + ".");
    }

    s.delete(s.length() - 1, s.length()); System.out.println(s);
    }
    }
      

  4.   

    解释一下:
    StringBuiler的效率要高于String,对有关String用过javap,就知道其实String的操作实际是用的StringBuilder。所以直接用StringBuilder代替String类型的操作,效率会好些。 s.delete(s.length() - 1, s.length());//这是去除210.002.001.090.最后面的那个点