用java做一個簡單的英文翻譯程式
1.功能簡介
將文字檔案中的英文轉換為對應的中文
詞庫如下:
原始檔:
翻譯後的檔案:
輸入原始檔路徑,將翻譯後的內容輸出到result.txt檔案中。
2.重要技術
(1)如何載入詞庫檔案
因為詞庫檔案是 kry=value的形式,所有可以用到Properties類的load函式
(2)如何將原始檔中的一段英文分理處一個個的單詞
可以用StringTokenizer類
(3)如何進行翻譯
直接用中文替換相應的英文
3.專案結構
(4)程式碼編寫
①FileLoader類
②TxtTrans類/*檔案載入類,將原始檔中的內容輸出到位元組陣列中*/ 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; } }
/*檔案翻譯,將位元組陣列變為字串,分離出其中的單詞,然後翻譯為對應的漢字,去掉空格,變為字串*/ 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做一個簡單的英文翻譯程式
1.功能簡介 將文字檔案中的英文轉換為對應的中文 詞庫如下: 原始檔: 翻譯後的檔案: 輸入原始檔路徑,將翻譯後的內容輸出到result.txt檔案中。 2.重要技術 (1)如何載入詞庫檔案
用java做一個簡單的打字遊戲
Java也是可以做桌面程式的。只不過需要執行在裝有JDK的電腦環境上,所以應用不是很廣泛,但是用來提高自身的程式碼邏輯還是可以的!偶有一天看到金山的打字通,就想起何不做個簡單的打字遊戲用來練練手。於是就有了下文 首先建一個類MyTyping,只有main方法 執行main方法
用java做一個簡單的萬年曆
一個簡單的萬年曆製作 簡單介紹萬年曆的各功能實現: 1.首先鍵盤輸入查詢的年份和月份 Scanner sc = new Scanner(System.in); System.ou
用java做一個簡單的視訊轉碼器
用java做一個視訊轉碼器 本Markdown編輯器使用[StackEdit][6]修改而來,用它寫部落格,將會帶來全新的體驗哦: 用java做一個視訊轉碼器,首先實現視訊格式轉換,需要用到兩個軟體”ffmpeg”和”mencoder”話不多說,直接上程式碼
用Java做一個及時翻譯工具
平時看英文文件或者查詢資料的時候,遇到了不懂的單詞,就要去百度,然後就會很麻煩。於是就想到用Java寫一個及時翻譯的小工具!預期的實現效果: 雙擊選中一個單詞,按下Ctrl+C進行復制 然後馬上顯示出對應單詞的中文翻譯首先基本思路是這樣的: 首先獲取系統剪下板的
用JAVA寫一個簡單的英文加密器
package qhs; import java.util.Scanner; public class JiaM { public static void main(String[] args) { String[] A = new String[5000]; String min;
用C#做一個簡單紙牌遊戲的程式
小子不才學C#沒多久,想做個窗體紙牌遊戲玩,但是窗體應用懂得不多,只能在控制命令臺上進行遊戲設計,希望有大神能幫我設計這個窗體程式,或者推薦好的窗體設計資料,謝謝了,控制命令臺程式如下: namespace BasicCardsGame { class OutOfR
用java實現一個簡單的單用戶登陸功能的思路
get 單用戶 這樣的 簡單的 lock ref 數據庫 清除 一個 引用 所謂“單用戶單賬戶登錄”是指:在同一系統中,一個用戶名不能在兩個地方同時登錄。 我們參照 QQ 實現效果:當某賬號在 A 處登錄後,在未退出的情況下,如果再到 B 處登錄,那麽,系統會擠下 A 處
用 Vue 做一個簡單的購物app
有意思 應用程序 其中 ins com 簡單的 node.js 引入 大神 前言 最近在學習Vue的使用。看了官方文檔之後,感覺挺有意思的。於是著手做了一個簡單的購物app。這是我第一次在這個網站上寫分享,如有不當之處,請多多指教。 一整個項目寫下來,最大的感覺就是組件式開
用socket寫一個簡單的聊天程式
服務端程式碼: # 建立socket物件:socket.socket()——>繫結IP地址和埠:bind——>監聽:listen——># 得到請求:accept——>接收請求:recv——>傳送資訊:send——>關閉close i
用Java構建一個簡單的WebSocket聊天室
本文首發公眾號 Java貓說 & 貓叔的部落格 | MySelf,轉載請申明出處。 前言 首先對於一個簡單的聊天室,大家應該都有一定的概念了,這裡我們省略使用者模組的講解,而是單純的先說說聊天室的幾個功能:自我對話、好友交流、群聊、離線訊息等。 今天我們要做的demo就能幫我們做到這一
用java實現一個簡單的ArrayList
重複造輪子雖然不可取,但是溫習一下資料結構,光看不做總是少了什麼,所以也來實現一下List,希望多多包涵。 既然要實現一個List,先來簡單說一下List的定義 線性表是最基本、最簡單、也是最常用的一種資料結構。 線性表中資料元素之間的關係是一對一的關係
用Java構建一個簡單的WebSocket聊天專案之新增HTTP介面排程
本文首發公眾號與個人部落格:Java貓說 & 貓叔的部落格 | MySelf,轉載請申明出處。 前言 大家可以看看上一篇:用Java構建一個簡單的WebSocket聊天室 在上一篇文章中我們已經實現了:自我對話、好友交流、群聊、離線訊息等的功能。 而本篇,我們的框架升級了,
用java實現一個簡單的學生管理系統
用Java如何實現一個用陣列作為儲存結構的簡易的學生管理系統? 首先,我們定義一個student類,在其中新增私有化的成員變數,通過getter和setter方法進行呼叫 public class Students { // 學號,姓名,性別,年
用Jmeter做一個簡單的介面測試(一)
Jmeter介面測試例項 1.新建一個Thread Group 2. 線上程組下建一個HTTP請求 3. 在http請求下建檢視結果樹 4. 在http請求下建聚合報告 5.在http請求下建圖形結果 6.執行 最後右擊執行緒組,單擊
用QT做一個簡單的答題介面
學了兩天的QT介面,今天老師佈置了作業讓我們用QT做一個簡單的單人答題介面 類似微信應用裡的頭腦王者,每十秒答一題,一共答5題,最後輸出分數。 下面是我自己的步驟、介面及程式:(儘量從簡的) 首先開啟QT ,新建一個應用程式 建立完成以後建立設計師介
用java做一個2048小遊戲
昨天,自己突發奇想,能不能在忙碌的學習裡抽一點時間來做一點事情,然後,我就有了一個要做一個2048小遊戲的想法。說真的,java我已經認真學習了一段時間了,現在也剛剛學到Swing,雖然做這個2048還有很多東西沒有學習過,但是,一邊學一邊做才是我們菜鳥的樣子吧。 做這個東
用PopupWindow做一個簡單的彈出窗體
首先在主介面定義一個點選事件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/
Step by Step,用JAVA做一個FLAPPYBIRD遊戲(三)
遊戲介面的滾動背景 上一篇我們講了如何製作開始選單,開始選單比較簡單,就只涉及了一個Entity,接下來幾篇,我們要一步步實現遊戲介面,對應的gameState為GAME_STATE_PLAYING。 這一篇,我們先講滾動的背景是怎麼做到的。 Flappy
怎樣用Java編寫一個簡單的計算器
我是自己純手工用Java編寫的計算器 //filename:JiShuan import java.awt.Color; import java.awt.EventQueue; import java.awt.Image; import javax.swing.JBu