[Java学习] 黑马javaee点招综合练习

本文介绍了一个简单的Java程序,该程序能够从文本文件中读取IP地址,并将其转换为整数以便进行排序。通过使用TreeMap数据结构,程序实现了IP地址的自然排序,并将排序后的结果打印输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。
61.54.231.245
61.54.231.9
61.54.231.246
61.54.231.48
61.53.231.249
  1. package com.itheima3;
  2. http://www.ynmxzx.com/zxzx/bbzx/20160615/3714.html
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import java.util.Set;
  9. import java.util.TreeMap;
  10. http://www.ynmxzx.com/zxzx/bbzx/20160615/3715.html
  11. /*
  12. * 把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。
  13. * 61.54.231.245
  14. * 61.54.231.9
  15. * 61.54.231.246
  16. * 61.54.231.48
  17. * 61.53.231.249
  18. *http://www.ynmxzx.com/zxzx/bbzx/20160615/3716.html
  19. * */
  20. public class Test6 {
  21. public static void main(String[] args) throws IOException {
  22. //创建高效字符输出流对象,将读到的数据存放到指定文件中
  23. BufferedWriter bw = new BufferedWriter(new FileWriter("Test6.txt"));
  24. //将数据写出到文件中
  25. bw.write("61.54.231.245");
  26. //每次写完一个数据换行
  27. bw.newLine();
  28. bw.write("61.54.231.9");
  29. bw.newLine();
  30. bw.write("61.54.231.246");
  31. bw.newLine();
  32. bw.write("61.54.231.48");
  33. bw.newLine();
  34. bw.write("61.53.231.249");
  35. bw.close();http://www.ynmxzx.com/zxzx/bbzx/20160615/3717.html
  36. //创建高效字符输入流
  37. BufferedReader br= new BufferedReader(new FileReader("Test6.txt"));
  38. //创建一个双列集合存放数据
  39. TreeMap<Integer, String> map = new TreeMap<Integer, String>();
  40. String str;
  41. //循环读取文件中的数据
  42. while((str=br.readLine())!=null){
  43. //如果读到的数据不为空,那么就将读到的数据以“.”进行切割,然后存放到一个字符串数组中
  44. String[] split = str.split("\\.");
  45. //将数组的每个元素转换成数字然后再将转换后的数字按照IP地址的进制依次乘以256,然后相加,最终得到一个数字类型的值
  46. int parseInt = Integer.parseInt(split[0])*256*256*256
  47. + Integer.parseInt(split[1])*256*256
  48. + Integer.parseInt(split[2])*256
  49. + Integer.parseInt(split[3]);
  50. //将得到的这个数值和原来的字符串以键值对应关系存放到集合中
  51. map.put(parseInt, str);
  52. }http://www.ynmxzx.com/zxzx/bbzx/20160615/3718.html
  53. //关流
  54. br.close();
  55. //将集合中所有键存放到一个set集合中
  56. Set<Integer> keySet = map.keySet();
  57. //遍历集合,通过键获取值,并依次打印结果
  58. for (Integer integer : keySet) {
  59. System.out.println(map.get(integer));
  60. }www.ynmxzx.com
  61. }
  62. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值