题目:
已知存在一个d:\employee.txt文件,其内容如下:
6060078,李苒,0,艺术学院
6060080,刘雅丽,1,艺术学院
6062008,战飞,0,艺术
6060081,杨四宝,1,计算机学院
6060082,吕卫寰,0,教育学院
6060084,谭筱婷,0,艺术学院
6060085,张弘,1,文创学院
,赵珺果,女性,艺术学院
6060087,肖艳丽,女性,艺术学院
6060082,吕卫,0,教育学院
其实格式为:“职工号,姓名,性别,所属学院”,现要求将该文件每条记录读出,并进行转换,转换规则为:如果性别部分为0则性别值改成女,如果性别部分为1则改成男,如果所属学院部分没有以学院结束,则补上”学院”字样。将转换好的记录以每行一条的方式存档到d:\success.txt中,但是如果职工号部分缺失,不能存入d:\success.txt中,只能存放到d:\error.txt中,如果记录的职工号重复,则不写入d:\success.txt中,将重复记录写入d:\repeats.txt文件中。
求指教!
做题不易, 希望点击采纳~
完成效果:
题目需要完成的功能如下 :
1.将性别数字改为汉字 读取的时候分割,更改,拼接
2.学院部分不完全, 补上"学院" 读取的时候,判断包含, 拼接
3.职工号缺失的数据 存储到 erro.txt 分割,判断是否为空字符"", 不符合存到erro
4.其余的数据,不重复的情况下, 存入success.txt 放到set中,从set中写到success
package com.abc.io;
import java.io.*;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
public class Demo {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new FileReader(new File("Question\\employee.txt")));
String info;
Set<String> set = new LinkedHashSet<>();
//6060087,肖艳丽,女性,艺术学院
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("Question\\erro.txt")));
while ((info=br.readLine())!=null){
String[] split = info.split(",");
//3.职工号缺失的数据 存储到 erro.txt 分割,判断是否为null, 不符合存到erro
if (split[0].equals("")){
bw.write(info);
continue;
}
//1.将性别数字改为汉字 读取的时候分割,更改,拼接
if (split[2].equals("0")){
info = split[0]+","+split[1]+","+"女性"+","+split[3];
}else if(split[2].equals("1")){
info = split[0]+","+split[1]+","+"男性"+","+split[3];
}
//2.学院部分不完全, 补上"学院" 读取的时候,判断包含, 拼接
if (!split[3].contains("学院")){
info = info+"学院";
}
//4.其余的数据,不重复的情况下, 存入success.txt 放到set中,从set中写到success
set.add(info);
}
BufferedWriter bw2 = new BufferedWriter(new FileWriter(new File("Question\\success.txt")));
for (String s : set) {
bw2.write(s);
bw2.newLine();
}
br.close();
bw.close();
bw2.close();
}
}