weixin_44326093
框架师
采纳率60%
2020-10-30 15:06

这样一段IP地址192.168.1.10转成192168001010,Java,有大佬知道怎么操作嘛?

已采纳

这样一段IP地址192.168.1.10转成192168001010,Java,有大佬知道怎么操作嘛?

 /**
  * 解决IP地址转换为64位整数类型
  * 如: [192.168.31.4]转换为[192168031004]
  */
 public static String IPSplit(String ip) {
     ip = ip.replace(".", "\\");
     String[] ips = ip.split("[^\\d]+");
     String s1 = "";
     for (int i = 0; i < ips.length; i++) {
         String s = ips[i];
         if (s.length() == 1) {
             s = "00" + s;
         } else if (s.length() == 2) {
             s = "0" + s;
         }
         s1 += s;
     }
     return s1;
 }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • open_yu open_yu 5月前

    这是数字长度为3,不够就补0;
    举个比较简单的例子

    String ip="192.168.1.10";
    String[] ips=ip.split(".");//分割到数组里
    String str="";
    for(int i=0;i<ips.length;i++){
        String s=ips[i];
        if(s.length==1){
            s="00"+s
        }else if(s.length==2){
            s="0"+s;
        }
        str+=s;
    }
    

    随便写的代码,不够严谨,也不高端。

    点赞 2 评论 复制链接分享
  • qq_38167579 农夫丶果园 5月前

    org.apache.commons.lang3.StringUtils 里有个方法 leftPad(String str, int size, char padChar) , 用于对字符串进行左补充 ;
    比如你这个就是把每个段不足3位的左边补0 , 你先通过 split(".")分成四个字符串 , 再依次调用 leftPad(str, 3, '0' ), 然后拼接就好

    点赞 1 评论 复制链接分享
  • qq_42235984 _YuLF 5月前
      /**
         *  这个方法复制到您的类中,传入您的IP,返回您想要的格式
         *
         * @param oldIp ip
         * @return
         */
        public static String getRegroupIp(String oldIp) {
            String newIp = "", tmp = "";
            if (oldIp == null)
                return null;
            for (int i = 0; i < oldIp.length(); i++) {
                if (oldIp.charAt(i) == '.') {
                    newIp += tmp.length() < 3 ? tmp.length() == 1 ? "00" + tmp : "0" + tmp : tmp;
                    tmp = "";
                }
                tmp += oldIp.charAt(i);
            }
            //由于到最后循环结束,已经没有.了 所以最后一串数字也需要判断
            newIp += tmp.length() < 3 ? tmp.length() == 1 ? "00" + tmp : "0" + tmp : tmp;
            return newIp;
        }
    
    点赞 1 评论 复制链接分享