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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容