日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java案例_英漢字典

 好程序員IT 2019-05-28

在寫代碼的時(shí)候,當(dāng)鼠標(biāo)懸浮在某一個(gè)單詞上面的時(shí)候,有道詞典點(diǎn)有時(shí)會(huì)彈出一個(gè)消息氣泡,在里面中給出關(guān)于這個(gè)單詞相關(guān)的解釋,下面給大家展示一個(gè)使用Java基礎(chǔ)語(yǔ)言編寫的英漢字典案例:

實(shí)現(xiàn)功能

輸入英文,給出對(duì)應(yīng)的中文翻譯如果沒有這個(gè)單詞沒有被收錄會(huì)有相關(guān)提示

代碼編寫環(huán)境

JDK1.8.0_191

Eclipse:2019-03 (4.11.0)

素材

dict.txt

字典資源文本文件,保存一些下列格式的文件,英文和翻譯之間用制表符隔開:

Africa n. 非洲

Aids n. 愛滋病

America n. 美洲

April n. 四月

案例實(shí)現(xiàn)用到的技術(shù)

IO流

MapHashMap

字符串分割

異常處理

代碼思路

1、 根據(jù)字典文件路徑,創(chuàng)建file對(duì)象

2、 判斷file對(duì)象是否為空,不為空就繼續(xù)否則直接返回null

3、 File不為空創(chuàng)建InputStreamReaderBufferedReader對(duì)象

4、 循環(huán)讀取字典文本中的內(nèi)容,切割得到數(shù)組,保存在map中

5、 提示輸入單詞,查詢單詞,輸出查詢結(jié)果

運(yùn)行效果

開始運(yùn)行的提示


查詢成功的反饋


單詞不存在的反饋


案例代碼

編寫方法讀取文本中的內(nèi)容

package com.feng.demo01;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

/**

 * 英漢字典案例

 * @author dushine

*/

public class GetDict {

public static void main(String[] args) {

String path = "E:\\dict.txt";

// 獲取字典中的所有內(nèi)容

Map<String, String> dict = getText(path);

// 判斷字典是否為空,提示輸入單詞,獲取查詢結(jié)果

if (dict != null) {

@SuppressWarnings("resource")

// 獲取輸入內(nèi)容

Scanner input = new Scanner(System.in);

System.out.println("請(qǐng)輸入要查詢的單詞:");

String word = input.next();

// 查詢字典獲取中文,如果沒有也給出反饋

String ret = dict.get(word);

if (ret != null) {

System.out.println("查詢結(jié)果:\n"+word + "" + ret);

} else {

System.out.println("您查詢的單詞尚未收錄,敬請(qǐng)期待!");

}

}

}

/**

 * 獲取字典文件中內(nèi)容

 * @param path

 * @return

 */

private static Map<String, String> getText(String path) {

// 可能會(huì)出現(xiàn)異常

try {

// 根據(jù)路徑創(chuàng)建文件對(duì)象

File file = new File(path);

// 判斷路徑指向的文件是否存在

if (file.exists() && file.isFile()) {

// 創(chuàng)建map,存儲(chǔ)讀取得到的內(nèi)容

Map<String, String> dict = new HashMap<String, String>();

System.out.println("文件路徑正確,正在解析。。。");

// 創(chuàng)建輸入流對(duì)象

InputStreamReader reader =

new InputStreamReader(new FileInputStream(file), "gbk");

BufferedReader bufferedReader = new BufferedReader(reader);

String text = null;

// 循環(huán)讀取文件內(nèi)容

while ((text = bufferedReader.readLine()) != null) {

// 切割每一行內(nèi)容,得到數(shù)組

String[] arr = text.split("\t");

// 把切割得到的內(nèi)容放入map

dict.put(arr[0], arr[1]);

}

// 讀取結(jié)束,關(guān)閉流對(duì)象并返回結(jié)果

reader.close();

return dict;

} else {

System.out.println("字典崩潰啦,下次再來(lái)使用吧。。。");

}

} catch (Exception e) {

System.out.println("字典好像出了點(diǎn)問(wèn)題、文件內(nèi)容出錯(cuò)啦。。。");

e.printStackTrace();

}

// 路徑指向的不是文件或者文件不存在返回null

return null;

}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多