IP地址排序

来源:互联网 发布:ubuntu torch7 安装 编辑:程序博客网 时间:2024/06/05 02:51

题目:把以下IP存入一个txt文件,编写程序把这些IP地址按数值大小,从小到达排序并打印出来。
61.54.231.245
61.54.231.9
61.54.231.246
61.54.231.48
61.53.231.249

主要思路如下:
 class Program    {//本题目主要用到了文件+冒泡排序+字符串处理        static void Main(string[] args)        {            //读取ip地址            string[] str = File.ReadAllLines("IP地址.txt", Encoding.Default);            //冒泡排序            for (int i = 0; i < str.Length; i++)            {                for (int j = 0; j < str.Length - 1 - i; j++)                {                    if (ToNumber(str[j]) > ToNumber(str[j + 1]))                    {                        string strBu = str[j];                        str[j] = str[j + 1];                        str[j + 1] = strBu;                    }                }            }            //输出IP地址排序后的结果            for (int i = 0; i < str.Length; i++)            {                Console.WriteLine(str[i]);            }            Console.ReadKey();        }        /*Ip地址格式为:a.b.c.d        每个数字范围在0~255之间,我们可以把它们看成一个四位的256进制数         然后转换成十进制=a*256^3+b*256^2+c*256^1+d*256^0        然后根据对应的十进制大小排序就OK了。*/        private static int ToNumber(string str)        {            string[] p = str.Split('.');            int sum = 0;            for (int i = 0; i < p.Length; i++)            {                //每个IP地址累加和                sum = sum * 256 + int.Parse(p[i]);            }            return sum;        }    }


原创粉丝点击