JAVA实现一个十万行的电子词典(兼容郑码拼音)

首先原词典incode.txt的内容格式如下:

JAVA实现一个十万行的电子词典(兼容郑码拼音)_第1张图片

现改成如下格式方便查询:

JAVA实现一个十万行的电子词典(兼容郑码拼音)_第2张图片

编辑格式的代码如下:

//更改字典格式2

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Change1 {
	
	public static void main(String[] args) {
		
		File file = new File("E:\\incode.txt");
		try {
			FileReader reader = new FileReader(file);
			FileWriter writer = new FileWriter(new File("E:\\incode2.txt"));
			//用BufferedReader来进行数据流读取
			BufferedReader bufferedReader = new BufferedReader(reader);
			//用BufferedWriter来进行数据流输出
			BufferedWriter bufferedWriter = new BufferedWriter(writer);
			//获取每一行字符串
			String str ;
			while((str = bufferedReader.readLine())!=null) {
				//获取拼接好的字符串
				String newStr = insert(str);
				String newStr1=insert1(newStr);
				//输出文件
				bufferedWriter.write(newStr1+="\r\n");
			}
			bufferedReader.close();
			bufferedWriter.close();
			writer.close();
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private static String insert(String str) {
		//切割字符串
		String[] arr = str.split(" ");
		
		//拼接字符串
		String newStr = "<"+arr[0]+">"+str.substring(arr[0].length(), str.length());
		
		return newStr ;
	}
	
	private static String insert1(String newStr) {		 
		//切割字符串
		String[] arr = newStr.split(" ");
		//拼接字符串
		String newStr1 =  arr[0]+"<"+newStr.substring(arr[0].length(), newStr.length())+">";
		
		return newStr1 ;
	}


}

实现字典功能的java源代码如下:

//电子辞典程序

import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.*;
public class ReadDic
{
    public static void main(String[] args) throws IOException 
	{
      while(true) 
		{
			System.out.println("请输入拼音或郑码:");
			
			Scanner scanner=new Scanner(System.in); //不要关闭,否则不能循环查询		
			String s=scanner.next(); 
			
			if("exit".equalsIgnoreCase(s)) {	
				
				System.exit(0);				
                }
			
			
			
			File f=new File("E:\\incode2.txt");
			FileReader z=new FileReader(f);
			BufferedReader b=new BufferedReader(z);//用BufferedReader来进行数据流读取
			
			String str;//定义一个字符数组
			
            boolean flag=false;
            
            while((str=b.readLine())!=null)//判断最后一行不存在,为空
              {
                String english=str.substring(str.indexOf("<")+1,str.indexOf(">"));				
                              
                String chinese=str.substring(str.lastIndexOf("<")+1,str.lastIndexOf(">"));				
                
                  if(english.equalsIgnoreCase(s))  {
                	  
                System.out.println("对应词条:"+chinese); 
                  flag=true;
                  
                  }
                  
              } 
              if(flag==false) {
            	  
                System.out.println("查不到该词");
               
              }
             
              b.close(); 
              z.close();
             
        }
      
    } 
   
}

查询结果如图(如果郑码拼音同时存在,则第一行为郑码词条,第二行为拼音词条):

JAVA实现一个十万行的电子词典(兼容郑码拼音)_第3张图片

你可能感兴趣的:(JAVA实现一个十万行的电子词典(兼容郑码拼音))