java实现英文翻译程序

本文实例为大家分享了java实现英文翻译程序的具体代码,供大家参考,具体内容如下

1.功能简介

将文本文件中的英文转换为对应的中文

词库如下:

源文件:

翻译后的文件:

输入源文件路径,将翻译后的内容输出到result.txt文件中。

2.重要技术

(1)如何载入词库文件

因为词库文件是 kry=value的形式,所有可以用到Properties类的load函数

(2)如何将源文件中的一段英文分理处一个个的单词

可以用StringTokenizer类

(3)如何进行翻译

直接用中文替换相应的英文

3.项目结构

(4)代码编写

①FileLoader类

/*文件载入类,将源文件中的内容输出到字节数组中*/
package zhidao3_2;
import java.io.FileInputStream;
import java.io.File;
public class FileLoad {
 public static byte[] getContent(String fileName)throws Exception{
 File file = new File(fileName);
 if(!file.exists()){
  System.out.println("输入有误,该文件不存在");
 }
 FileInputStream fis = new FileInputStream(file);
 int length = (int)file.length();
 byte[] data = new byte[length];
 fis.read(data);
 fis.close();
 return data;
 }
}

②TxtTrans类

/*文件翻译,将字节数组变为字符串,分离出其中的单词,然后翻译为对应的汉字,去掉空格,变为字符串*/
package zhidao3_2;
import java.util.StringTokenizer;
import java.util.Properties;
import java.io.*;
public class TxtTrans {
 private Properties pps;
 public TxtTrans(){
 loadCiku();
 }
 public void loadCiku(){
 pps = new Properties();
 try{
  FileReader fis = new FileReader("g:/ciku.txt");//以字符载入时没有乱码,以字节载入时出现了乱码
  pps.load(fis);
  fis.close();
 }catch(Exception ex){
  ex.printStackTrace(System.out);
  System.out.println("载入词库时出错");
 }
 //System.out.println(pps.get("china")) ;

 }
 public String trans(byte[] data){
 String srcTxt = new String(data);
 String dstTxt = srcTxt;

 String delim = " ,.!\n\t"; //分隔符可以指定
 StringTokenizer st = new StringTokenizer(srcTxt,delim,false);
 String sub,lowerSub,newSub;
 //int i=0;
 while(st.hasMoreTokens()){
  sub = st.nextToken(); //分割出的一个个单词

  lowerSub = sub.toLowerCase();//统一转换为小写,这样可以简化词库
  //System.out.println(sub);
  newSub = pps.getProperty(lowerSub);
  if(newSub != null){ //如果找到了匹配的汉字,则进行替换
  dstTxt = dstTxt.replaceFirst(sub, newSub); //只替换第一个,即只替换了当前的字符串,否则容易造成ch我na的例子
  //System.out.println(dstTxt);
  }
 }

 return dstTxt.replaceAll(" ", ""); //去掉空格
 }

}

③FileOutput类

/*将字符串输出到文件*/
package zhidao3_2;
import java.io.File;
import java.io.FileOutputStream;
public class FileOutput {
 public static void output(String text,String fileName)throws Exception{
 File file = new File(fileName);
 FileOutputStream fos = new FileOutputStream(file);
 fos.write(text.getBytes());
 fos.close();
 }
}

④主函数

package zhidao3_2;
import javax.swing.JOptionPane;
public class Main {

 public static void main(String[] args) {
 String srcFile = JOptionPane.showInputDialog("输入源文件");
 try{
  byte[] data = FileLoad.getContent(srcFile);
  TxtTrans tt = new TxtTrans();
  String dString = tt.trans(data);
  FileOutput.output(dString, "g:/result.txt");
 }catch(Exception ex){
  JOptionPane.showMessageDialog(null, "操作异常");
  System.exit(1);
 }

 JOptionPane.showMessageDialog(null, "翻译完毕");
 }

}

最后的项目结构如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现将数字日期翻译成英文单词的工具类实例

    本文实例讲述了Java实现将数字日期翻译成英文单词的工具类.分享给大家供大家参考,具体如下: package com.sunyard.etp.ag.util; import java.math.BigDecimal; import java.util.Arrays; public class DateEngUtil { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated meth

  • java实现简单的英文文本单词翻译器功能示例

    本文实例讲述了java实现简单的英文文本单词翻译器功能.分享给大家供大家参考,具体如下: 直接上代码: package fanyi; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader;

  • java实现英文翻译程序

    本文实例为大家分享了java实现英文翻译程序的具体代码,供大家参考,具体内容如下 1.功能简介 将文本文件中的英文转换为对应的中文 词库如下: 源文件: 翻译后的文件: 输入源文件路径,将翻译后的内容输出到result.txt文件中. 2.重要技术 (1)如何载入词库文件 因为词库文件是 kry=value的形式,所有可以用到Properties类的load函数 (2)如何将源文件中的一段英文分理处一个个的单词 可以用StringTokenizer类 (3)如何进行翻译 直接用中文替换相应的英文

  • Java统计英文句子中出现次数最多的单词并计算出现次数的方法

    本文实例讲述了Java统计英文句子中出现次数最多的单词并计算出现次数的方法.分享给大家供大家参考,具体如下: import java.util.*; /** * 统计出现次数最多的单词和它出现的次数 * * @author ZHR */ public class CountWord { public static String[] strTostrArray(String str) { /* * 将非字母字符全部替换为空格字符" " 得到一个全小写的纯字母字符串包含有空格字符 */ s

  • Java实现英文句子中的单词顺序逆序输出的方法

    本文实例讲述了Java实现英文句子中的单词顺序逆序输出的方法.分享给大家供大家参考,具体如下: 题目要求:给定n行的英文句子,要求输出句子中逆序单词后的句子,如: 输入:n=3 I love you How are you My name is Liming 输出: you love I you are How Liming is name My 依据Java语言给我们提供的拆分空格间隔的单词的方法(split(" ")),倒序输出即可; 实现代码: import java.io.Un

  • Java实现英文猜词游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 游戏启动类 处理 单词判断 总结 前言 <英文猜词游戏>代码行数没有超过200行,是之前为了背英语单词,特意研发的小游戏. 主要设计 1.事先准备单词文本. 2.为了让玩家能与程序互动,使用下面这个命令可达效果 Scanner sc = new Scanner(System.in); 3.运行WordleMaster里的main方法 4.在Wordle中输入第一个单词(默认第一个单词是abort,会显示在console中.可在代码中修改) 5.将Wor

  • Java统计输入字符的英文字母、空格、数字和其它

    题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用while语句,条件为输入的字符不为 '\n '. 程序设计: import java.util.Scanner; public class ex7 { public static void main(String args[]) { System.out.println("请输入字符串:"); Scanner scan=new Scanner(System.in); String str=scan

  • Go Java算法之从英文中重建数字示例详解

    目录 从英文中重建数字 Java实现 Go实现 从英文中重建数字 给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9).按 升序 返回原始的数字. 示例 1: 输入:s = "owoztneoer" 输出:"012" 示例 2: 输入:s = "fviefuro" 输出:"45" 提示: 1 <= s.length <= 105 s[i] 为 ["e","g&

  • java8中lamba表达式的使用

    (-1)前言 学习lamba表达式是十分重要的,你会发现java变的可爱多了. (0)函数式接口 只有一个方法的接口称为函数式接口 JButton jButton = new JButton("123"); jButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {}}); 等同于 jButton.addActionListener(e-&

  • Java中判断字符串是中文或者英文的工具类分享

    直接上代码: 复制代码 代码如下: import java.util.regex.Matcher; import java.util.regex.Pattern; /**  *  * <p>  * ClassName ShowChineseInUnicodeBlock  * </p>  * <p>  * Description 提供判断字符串是中文或者是英文的一种思路  * </p>  *  * @author wangxu wangx89@126.com

  • java中判断字段真实长度的实例(中文2个字符,英文1个字符)

    实例如下: public class Char_cn { public static void main(String[] args) { // TODO Auto-generated method stub String haha = "我叫兜兜abcd"; int true_num = String_length(haha); System.out.println("true" + true_num); int false_num = haha.length()

随机推荐