用JAVA将繁体中文转化为简体中文

一、简述

程序shift完成了繁体字到简体字的转换,该程序可以套用其他字典或其他标准,不做限制。
其中dictionary.txt是字典文件,下载:dictionary.txt
tra.txt是繁体字文件,选文为《西游记》第一回,下载:https://pan.baidu.com/s/1LfcD_voJ2cf5TOjFe8uhJQ
提取码:86kc

二、代码

JAVA代码及注释如下:

/*
功能:繁体字转换为简体字
输入:繁体文字编辑的文本文件
输出:转换好的简体字文本文件
工具:需要用到繁体对应的简体字典
函数:一个,简繁转换
author:杨陈菊
日期:2019.1.11
*/
import java.io.*;
import java.io.File;//引入File类
import java.util.Scanner;//引入Scanner类,用于从文件读数据
import java.io.PrintWriter;//引入PrintWriter类,用于写数据入文件
import java.io.FileNotFoundException;//文件未找到异常处理类
class shift_4{
  	public static void main(String[] args) throws Exception{
    	long star=System.currentTimeMillis();
    	File file_result = new File(args[0]);//当前路径
    	//检测目标文件是否已经存在
		if (file_result.exists()) {
			System.out.println(args[0]+"已经存在");
			System.exit(0);
		}
      	PrintWriter output = new PrintWriter(file_result);//创建写对象    
    	try{
      		File file_tra = new File(args[1]);
      		//检测原文件是否存在
      		if (!file_tra.exists()) {
				System.out.println(args[1]+"不存在");
				System.exit(0);
			}
      	Scanner  input = new Scanner(file_tra);
      	while(input.hasNext()){//.hasNext()方法:如果这个扫描器还有可读的数据则返回true
        	String str = input.nextLine();//读取数据 
        	output.print(shift(str));
      	}
      	input.close();//.close()方法关闭文件,释放被文件占用的资源
      	output.close();
      	long end=System.currentTimeMillis();
      	System.out.println("耗时:"+(end-star)+"毫秒");
    	}catch(FileNotFoundException e){
      		e.printStackTrace();
    	}
  	}
  	public static String shift(String stri) throws Exception{
    	String result="";
    	try{
      		File file_d = new File("dictionary.txt");
      		BufferedReader word = new BufferedReader(new InputStreamReader(new FileInputStream(file_d)));
      		String tradition="";
      		for (int i =0;i<stri.length() ;i++) {
        		boolean flag= false;
        		String temp=stri.substring(i, (i+1));
        		word.mark( ( int )file_d.length() + 1 );
        		while((tradition = word.readLine()) != null) {
          			/* 返回数组下标从indexOf("<")+1到indexOf(">")的内容,也就是尖括号“<>”里面的内容*/
          			String tra_word = tradition.substring((int)tradition.indexOf("<")+1,(int) tradition.indexOf(">"));
          			//读取繁体部分,方法和上一条语句一样
          			String sam_word = tradition.substring(tradition.lastIndexOf("<")+1,tradition.lastIndexOf(">"));
          			if(temp.equals(tra_word)) {//输入词语存在文本则执行
            			result+=sam_word;
            			flag = true;
            			break;
          			}
        		} 
        		if(!flag){
          			result+=temp;
        		}
        		word.reset();
      		}
    	}catch(FileNotFoundException e){
      		e.printStackTrace();
    	}
    	return result;
  	}
}

三、运行结果

自定义传入的繁体文件和生成的简体文件:
在这里插入图片描述

结果:
用JAVA将繁体中文转化为简体中文_第1张图片

用JAVA将繁体中文转化为简体中文_第2张图片

你可能感兴趣的:(JAVA)