加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

IP地址排序问题

发布时间:2020-12-14 01:44:15 所属栏目:百科 来源:网络整理
导读:class Program {#region IP地址排序问题 string strIP = File.ReadAllText("ip地址.txt"); //// strIP = "192.168.1.123 192.168.1.3 2.1.1.12 3.1.1.1"; //////空格 不一致,使用正则分割 ////string[] ipAddress = Regex.Split(strIP," +"); #region 假设i
class Program {
	#region IP地址排序问题
            string strIP = File.ReadAllText("ip地址.txt");
            ////  strIP = "192.168.1.123 192.168.1.3      2.1.1.12    3.1.1.1";
            //////空格 不一致,使用正则分割
            ////string[] ipAddress = Regex.Split(strIP," +");

            #region 假设ip地址很乱,制表符不一致,通过正则提取
            MatchCollection matchColl = Regex.Matches(strIP,@"(d{1,3}.){3}d{1,3}");
            StringBuilder sb = new StringBuilder(50);
            foreach (Match item in matchColl)
            {
                sb.AppendLine(item.Value);
            }
            strIP = sb.ToString();
            #endregion

            string[] ipAddress = strIP.Split('n');

            //  这样每一组的比较依据都是首个数字。与实际中ip地址分类顺序不一致了。
            Console.WriteLine("nn排序前:");
            Array.Sort(ipAddress);
            Console.WriteLine(string.Join("n",ipAddress));

            #region 补0排序过程
            //补0的个数不一致,干脆都补0,保证每一组至少凑满三位
            strIP = Regex.Replace(strIP,"(d+)","00$1");
            //Console.WriteLine(strIP);

            //除去多余的0
            strIP = Regex.Replace(strIP,"0*(d{3})","$1");
            //Console.WriteLine(strIP);
            ipAddress = strIP.Split('n');      //  补0完整后,再分割到数组

            Console.WriteLine("nn排序后:");
            Array.Sort(ipAddress);
            Console.WriteLine(string.Join("n",ipAddress));
            #endregion
	#endregion
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读