這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)java中怎么實(shí)現(xiàn)一個(gè)英文翻譯程序,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)是專業(yè)的石家莊網(wǎng)站建設(shè)公司,石家莊接單;提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行石家莊網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
①FileLoader類
/*文件載入類,將源文件中的內(nèi)容輸出到字節(jié)數(shù)組中*/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類
/*文件翻譯,將字節(jié)數(shù)組變?yōu)樽址?,分離出其中的單詞,然后翻譯為對應(yīng)的漢字,去掉空格,變?yōu)樽址?/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");//以字符載入時(shí)沒有亂碼,以字節(jié)載入時(shí)出現(xiàn)了亂碼 pps.load(fis); fis.close(); }catch(Exception ex){ ex.printStackTrace(System.out); System.out.println("載入詞庫時(shí)出錯(cuò)"); } //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(); //分割出的一個(gè)個(gè)單詞 lowerSub = sub.toLowerCase();//統(tǒng)一轉(zhuǎn)換為小寫,這樣可以簡化詞庫 //System.out.println(sub); newSub = pps.getProperty(lowerSub); if(newSub != null){ //如果找到了匹配的漢字,則進(jìn)行替換 dstTxt = dstTxt.replaceFirst(sub, newSub); //只替換第一個(gè),即只替換了當(dāng)前的字符串,否則容易造成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(); }}
④主函數(shù)
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中怎么實(shí)現(xiàn)一個(gè)英文翻譯程序了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。