您好,登錄后才能下訂單哦!
小編給大家分享一下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實現英文翻譯程序的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。