在現實生活中,我們需要一些系統提供輸入拼音首字母,返回與其對應中文的功能,這樣可以提高人機交互性以及提高系統的友好性。
結合之前所做的portlet技術,還有AJAX,讓我們在web應用這塊來說說這個不是太復雜的應用吧:
對於我們的漢字與拼音對應詞庫生成需要如下資源:
1、首先要一個該系統所屬的中文詞庫
2、一份漢字與拼音的對照表
接下來我們會用這個中文詞庫去匹配漢字與拼音對照表之中的數據,找出與各個詞語對應的拼音來,然後在這個文件中文詞語後面生成其對應的漢語拼音聲母首字母序列。
首先我們需要用漢字拼音對照表生成體統中文詞庫對應的,拼音列表。之後我們需要將這個拼音系統詞庫列表存儲到內存之中。考慮到效率等綜合因素,我們選取了TreeMap這個類,它以其優秀的內部結構使得containsKey(), get(), put() 和 remove()等操作能夠保持其時間復雜度在對數級上,即logN。為了能夠保持拼音對應漢字的能夠隨著字母的增減而對應顯示,我們選用了TreeMap中的SubMap()方法,其返回值是一個SortedMap對象。這下面的代碼使我從之前的OOo應用中取出的,大家改改就可以用了。
1 // XActionListener
2
3 public void textChanged(TextEvent rEvent) {
4
5 Object searchTextBox = xControlContainer
6
7 .getControl(searchText);
8
9
10
11 XTextComponent yText = (XTextComponent) UnoRuntime.queryInterface(
12
13 XTextComponent.class, searchTextBox);
14
15 searchString = yText.getText();
16
17 searchString = searchString.toLowerCase();
18
19 logger.debug("searchString is " + searchString);
20
21 Object resultComboBoxModel = xContr