黑马程序员技术交流社区
标题:
IP排序问题???
[打印本页]
作者:
张昶
时间:
2013-12-28 20:07
标题:
IP排序问题???
把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。
61.54.231.245
61.54.231.9
61.54.231.246
61.54.231.48
61.53.231.249
求解???
作者:
于磊
时间:
2013-12-28 20:14
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. }
作者:
张昶
时间:
2013-12-28 20:43
呵呵,你这也太牛了!谢谢哈!能有简单一点的吗?
作者:
张昶
时间:
2013-12-28 21:07
谢谢你,我自己也弄得了,不过和你的有一点区别。
作者:
张昶
时间:
2013-12-31 17:51
呵呵,我已经看了,谢谢哈!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2