zoukankan      html  css  js  c++  java
  • ”万能查重器“小程序

    //今天组长让我写一个查重的的程序来给一个词库查重 把相同的删除
    //一开始我绞尽脑汁想用嵌套的for循环怎么都有bug 原因是&&和&的理解错误
    //后来我想到了用Map集合 应为它的键值不可能相同 这样就轻松解决了重复的问题 恩恩哈哈········
    //Map <String,String> pp=new HashMap<String,String>; 他就是一个很好的查重的机器啊
     
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    public class Shangchu {
    
    	/**
    	 * @param args
    	 */
    	BufferedReader br = null;
    	StringBuffer sb1 = new StringBuffer();
    	StringBuffer sb2 = new StringBuffer();
    	public PrintWriter pw=null;
    	public Map<String,String> ciku=new HashMap<String,String>();
    	public List<String> hanzi=new ArrayList<String>();
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Shangchu sc=new Shangchu();		
    		sc.chaChong("pinyinciku.txt");
    	}
    	
    	public void chaChong(String txt) {
    		int s=0;
    		try {
    			br= new BufferedReader(new FileReader(txt));
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			System.out.println("文件读取失败");
    		}
    		try {
    			while((s = br.read()) != -1)
    			{
    				if(s != '\n')
    						if(!((s < 'a'||s>'z')&& (s != ' ')&&(s != '\'')))
    						{
    							sb1.append((char)s);					//添加拼音
    						
    						}
    						else 
    						{
    								sb2.append((char)s);				//添加汉字
    						}				    
    				else
    				{		
    					ciku.put(sb2.toString(), sb1.toString());						
    					sb1.delete(0,sb1.capacity()-1);											
    					sb2.delete(0,sb2.capacity()-1);
    				}	
    			
    			}
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    			System.out.println("字符串添加失败");
    		}
    		finally 
    		{
    			if (br!=null)
    			{
    				try {
    					br.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    					System.out.println("br关闭失败");
    				}
    			}
    			
    		}
    		try {
    			pw=new PrintWriter(new FileWriter(new File ("a.txt")));
    			Set<Map.Entry<String,String>> entryset=ciku.entrySet();
    			   Iterator<Map.Entry<String,String>> its =entryset.iterator();
    			   while (its.hasNext())
    			   {
    			    Map.Entry<String,String> mm=its.next();
    			    String hanzi= mm.getKey();
    			   
    			    String pinyin=mm.getValue();
    			    pw.append(pinyin);
    			    pw.append(hanzi);
    			    pw.append('\n');
    			    System.out.println(pinyin+" ````` "+hanzi);
    			   }
    			
    			
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    		   finally {
    				if (pw!=null)
    				{
    					pw.close();
    				}
    		
    			}
    		
    
    	}
    }	
    		
    
    		
    

  • 相关阅读:
    scrapy练习1
    sys.path.append()加入当前目录为环境变量
    同济:003.映射与函数3
    1-4 无监督学习(Unsupervised Learning)
    1-3.监督学习(supervised learning)
    同济:002.映射与函数2
    github访问过慢解决
    LeetCode OJ:Contains Duplicate(是否包含重复)
    LeetCode OJ:Maximum Product Subarray(子数组最大乘积)
    LeetCode OJ:Valid Anagram(有效字谜问题)
  • 原文地址:https://www.cnblogs.com/lixingle/p/3313036.html
Copyright © 2011-2022 走看看