1.统计一个文本中重复的内容
package count; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class countWord { public static void main(String[] args) { count("F:\\A\\B.xml"); } public static void count(String filepath) { try { File file = new File(filepath); if(!file.exists()) { System.out.println("file not exist"); return; } //create BufferedReader to improve efficient InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8"); BufferedReader bufReader = new BufferedReader(isr); String line = null; //create map collection to record information Map<String,Integer> map = new HashMap<String,Integer>(); while((line = bufReader.readLine()) != null) { if(map.containsKey(line)) map.put(line,map.get(line)+1); else map.put(line,1); } //print map collction showMap(map); } catch (Exception ex) { ex.printStackTrace(); } } private static void showMap(Map<String,Integer> map) { if(map == null) return; Set<String> keyset = map.keySet(); Iterator<String> it = keyset.iterator(); int count = 0; while(it.hasNext()) { String s = it.next(); if(map.get(s) > 1) {//个数大于1 System.out.println( s+ "......" + map.get(s)); count++; } } System.out.println("重复两次的数据:" + count); } }
2.统计两个文本中重复的内容
package count; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class countWordTowFile { public static void main(String[] args) { count("F:\\A\\B.xml","C:\\D\\E.txt"); } public static void count(String filepath,String filepath2) { try { File file = new File(filepath); File file2 = new File(filepath2); if(!file.exists() || !file2.exists()) { System.out.println("file not exist"); return; } //create BufferedReader to improve efficient InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8"); InputStreamReader isr2 = new InputStreamReader(new FileInputStream(file2), "UTF-8"); BufferedReader bufReader = new BufferedReader(isr); BufferedReader bufReader2 = new BufferedReader(isr2); String line = null; String line2 = null; //create map collection to record information Map<String,Integer> map = new HashMap<String,Integer>(); Map<String,Integer> map2 = new HashMap<String,Integer>(); while((line = bufReader.readLine()) != null)//读取第一个文件中的数据 { map.put(line,1); } while((line2 = bufReader2.readLine()) != null) {//读取第二个文件中的内容 if(map.containsKey(line2)) { map2.put(line2,map.get(line2)+1); } } //print map collction showMap(map2); } catch (Exception ex) { ex.printStackTrace(); } } private static void showMap(Map<String,Integer> map) { if(map == null) return; Set<String> keyset = map.keySet(); Iterator<String> it = keyset.iterator(); int count = 0; while(it.hasNext()) { String s = it.next(); System.out.println( s+ "......" + map.get(s)); count++; } System.out.println("重复两次的数据:" + count); } }
原文地址:https://www.cnblogs.com/taiguyiba/p/8660207.html
时间: 2024-10-08 15:24:09