java统计人员来源_【Java】员工统计

1.定义个文档“员工.txt”,里面的内容为:

李文,北京

李希,北京

张小小,河南

王文,河北

董信,北京

张坤,北京

万三,江西

戴天,河南

庞大,湖北

彭克,浙江

生成另外一个文档“员工统计.txt”中,其格式为:

北京,4(董信,李文,李希,张坤)

河南,2(戴天,张小小)

河北,1(王文)

江西,1(万三)

湖北,1(庞大)

浙江,1(彭克)

使用类集方法

使用List接口

package chapter13;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

public class Job {

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

String file1 = "d:/员工.txt";

File f1 = new File(file1);

FileReader in = new FileReader(f1);

BufferedReader breader = new BufferedReader(in);

String aLine;

ArrayList listProvince = new ArrayList();

ArrayList listNumber = new ArrayList();

ArrayList listDetail = new ArrayList();

while ((aLine = breader.readLine()) != null)

{

String name = aLine.substring(0, aLine.indexOf(",")); //取出从0到”,“变成子字符串

String province = aLine.substring(aLine.indexOf("," ) + 1);//取出”,“以后的所有子字符串

int pos = 0;

boolean find = false;

for (int i = 0; i < listProvince.size(); i++)

{

if (province.equals(listProvince.get(i)))

{

pos = i;

find = true;

break;

}

}

if (find)

{

listNumber.set(pos, (int)listNumber.get(pos) + 1);

listDetail.set(pos, listDetail.get(pos) + "," + name);

}

else

{

listProvince.add(province);

listNumber.add(1);

listDetail.add(name);

}

}

breader.close();

String file2 = "d:/员工统计.txt";

File f2 = new File(file2);

if(f2.exists())

f2.delete();

FileWriter writerStream = new FileWriter(file2);

BufferedWriter bwriter = new BufferedWriter(writerStream);

for(int i = 0; i < listProvince.size(); i++)

{

aLine = listProvince.get(i) + "," + listNumber.get(i) + "(" + listDetail.get(i) + ")\r\n";

bwriter.write(aLine);

}

bwriter.flush();

bwriter.close();

}

}

使用Map接口

package chapter13;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

public class Job2 {

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

String file = "d:/员工.txt";

FileReader in = new FileReader(file);

BufferedReader breader = new BufferedReader(in);

Map map = new HashMap();

String aLine;

while((aLine = breader.readLine()) != null)

{

String name = aLine.substring(0, aLine.indexOf(","));

String province = aLine.substring(aLine.indexOf(",") + 1);

if(map.get(province) != null)

{

map.replace(province, map.get(province) + "," + name);

}

else

map.put(province, name);

breader.close();

Set keys = map.keySet();

Iterator iter = keys.iterator();

String file2 = "d:/员工统计.txt";

File f = new File(file2);

if(f.exists())

f.delete();

FileWriter writerStream = new FileWriter(file2);

BufferedWriter bwriter = new BufferedWriter(writerStream);

while(iter.hasNext())

{

String str = iter.next();

String[] split = map.get(str).split(","); //把一个字符串分隔成字符串数组,分隔符为”,“

bwriter.write(str + "," + split.length + "(" + map.get(str) + ")\r\n"); //获取分隔数组长度

}

bwriter.flush();

bwriter.close();

}

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值