A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张昶 中级黑马   /  2013-12-28 20:07  /  997 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

求解???

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 视频里有。怎么不自己看?

查看全部评分

4 个回复

倒序浏览
01.class Program  
02.   {//本题目主要用到了文件+冒泡排序+字符串处理  
03.       static void Main(string[] args)  
04.       {  
05.           //读取ip地址  
06.           string[] str = File.ReadAllLines("IP地址.txt", Encoding.Default);  
07.  
08.           //冒泡排序  
09.           for (int i = 0; i < str.Length; i++)  
10.           {  
11.               for (int j = 0; j < str.Length - 1 - i; j++)  
12.               {  
13.                   if (ToNumber(str[j]) > ToNumber(str[j + 1]))  
14.                   {  
15.                       string strBu = str[j];  
16.                       str[j] = str[j + 1];  
17.                       str[j + 1] = strBu;  
18.                   }  
19.               }  
20.           }  
21.  
22.           //输出IP地址排序后的结果  
23.           for (int i = 0; i < str.Length; i++)  
24.           {  
25.               Console.WriteLine(str[i]);  
26.           }  
27.           Console.ReadKey();  
28.       }  
29.  
30.       /*Ip地址格式为:a.b.c.d
31.       每个数字范围在0~255之间,我们可以把它们看成一个四位的256进制数  
32.       然后转换成十进制=a*256^3+b*256^2+c*256^1+d*256^0
33.       然后根据对应的十进制大小排序就OK了。*/  
34.       private static int ToNumber(string str)  
35.       {  
36.           string[] p = str.Split('.');  
37.           int sum = 0;  
38.           for (int i = 0; i < p.Length; i++)  
39.           {  
40.               //每个IP地址累加和  
41.               sum = sum * 256 + int.Parse(p[i]);  
42.           }  
43.           return sum;  
44.       }  
45.   }  


评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 为什么不用正则?会简单很多!.

查看全部评分

回复 使用道具 举报
呵呵,你这也太牛了!谢谢哈!能有简单一点的吗?
回复 使用道具 举报
谢谢你,我自己也弄得了,不过和你的有一点区别。

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 用正则很简单。在毕老师的视频里有!所以没.

查看全部评分

回复 使用道具 举报
呵呵,我已经看了,谢谢哈!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马