# mdict_java **Repository Path**: wangwang2020/mdict_java ## Basic Information - **Project Name**: mdict_java - **Description**: Mdict查询库(mdx或mdd),一种流行的字典文件格式 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-07-16 - **Last Updated**: 2023-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MDict Library in pure java ! ![image](https://github.com/KnIfER/mdict-java/raw/master/screenshots/PDPC.png) It supports:    I.Lzo compressed contents. (via lzo-core)   II.Ripemd128 key-info decryption.  III.Builders to make Mdx add Mdd. and is able to do:    I.Basic query.   II.Conjuction search.  III.Fast wildcard match among entries.  IV.Fast Fulltext retrieval. (also with wild cards) # Android App https://github.com/KnIfER/PlainDictionaryAPP # Usage: ### 1.Basic query: ``` String key = "happy"; mdict md = new mdict(path); int search_result = md.lookUp(key, true);//true means to match strictly if(search_result!=-1){ String html_contents = md.getRecordAt(search_result); String entry_name = md.getEntryAt(search_result); } ``` ### 2.Search in a bunch of dicts: ``` String key = "happy"; ArrayList mdxs = new ArrayList(); mdxs.add(path1); mdxs.add(path2); RBTree_additive combining_search_tree = new RBTree_additive(); for(int i=0;i= keyword, in a pre-sorted list that contain entries. maybe some mathematician could tell me why, but I've tested over 100000 times without any expectation. * Maybe I should oneday replace red-black tree and the recursive reduce method with `Arrays.binarySearch`, but I am lazy... ``` /*via mdict-js *note at first time we feed in 0 as start and array.length as end. it must not be array.length-1. */ public static int reduce(int phrase, int[] array,int start,int end) { int len = end-start; if (len > 1) { len = len >> 1; return phrase > array[start + len - 1] ? reduce(phrase,array,start+len,end) : reduce(phrase,array,start,start+len); } else { return start; } } ``` MDX File Format =============== MDD File Format ===============