JAVA-17.2-集合、IO流之综合演练

题目一: 将两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},把这两个集合去除重复项合并成一个,实现需求

package com.edu_01;

import java.util.Iterator;
import java.util.TreeSet;

/**
 * 题目一: 将两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},
 * 把这两个集合去除重复项合并成一个,实现需求
 */
public class Demo1 {
   
    public static void main(String[] args) {
        /**分析:
         * 1.集合中存储的是String类型
         * 2.元素有序,(有序Hashset,无序TreeSet),且String类中已经实现了 Comparable接口
         * 3.给集合添加元素,add()
         * 4.将两个集合合并,最简单的方法,使用addAll()
         */
        TreeSet<String> ts = new TreeSet<String>();
        ts.add("a");
        ts.add("b");
        ts.add("c");
        ts.add("d");
        ts.add("e");
        TreeSet<String> ts2 = new TreeSet<String>(); 
        ts2.add("d");
        ts2.add("e");
        ts2.add("f");
        ts2.add("g");
        ts2.add("h");

        ts.addAll(ts2);//合并集合,并删除相同元素,保证元素唯一有序

        //遍历
        //方式一:增强for循环
        for (String s : ts) {
            System.out.print(s+"  ");
        }
        System.out.println();
        System.out.println("------------------------");

        //方式二:迭代器
        Iterator<String> it = ts.iterator();
        while(it.hasNext()){
            System.out.print(it.next()+"  ");
        }
    }
}
/*
a  b  c  d  e  f  g  h  
------------------------
a  b  c  d  e  f  g  h  
*/

题目二:已知文件a.txt文件中的内容为“AAbcdea22dferwplkCC321ou1”,请编写程序读取该文件内容,要求去掉重复字母(区分大小写字母)并按照自然排序顺序后输出到b.txt文件中。即b.txt文件内容应为”123ACabcdefklopruw”这样的顺序输出

package com.edu_02;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.TreeSet;

/**
 * 题目二:已知文件a.txt文件中的内容为“AAbcdea22dferwplkCC321ou1”,
 * 请编写程序读取该文件内容,要求去掉重复字母(区分大小写字母)并按照自然排序顺序后输出到b.txt文件中。
 * 即b.txt文件内容应为"123ACabcdefklopruw"这样的顺序输出
 */
public class Demo2 {
   
    public static void main(String[] args) throws IOException {
        /**
         * 分析:
         * 1.IO流读取、录入文件,
         * 2.一次读取一个字节
         * 3.将读取到的内容添加到TreeSet集合(Integer类已经实现Comparable接口,进行了自然排序)
         * 4.遍历集合,将元素录入文件
         */
        FileInputStream fis = new FileInputStream("a.txt");
        TreeSet<Integer> ts = new TreeSet<Integer>();//字节输入流,一次读取一个字节上时,返回的是ASCII码
                                                     //所以集合用Integer类型接收
        int by;
        while ((by = fis.read())!=-1) {
            ts.add(by);
        }

        //创建字节输出流,并写入文件
        FileOutputStream fos = new FileOutputStream("b.txt");
        for (Integer i : ts) {
            fos.write(i);
        }

        //关流
        fis.close();
        fos.close();
    }
}

题目三:在c盘下有篇txt文本,读取这个文本并统计出这个文本中指定字符的个数(如指定字符为”我”),将该字符与对应的次数输出到当前项目的key.txt中,例如:输出格式为:我=10

package com.edu_03;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值