java翻译_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, "翻譯完畢");
}
}
最后的項目結構如下:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
總結
以上是生活随笔為你收集整理的java翻译_java实现英文翻译程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2048小游戏最佳算法C语言,2048游
- 下一篇: Matlab下载 安装 与 和谐教程