① 輸入拼音查漢字的模糊查詢怎麼做
輸入拼音查漢字的模糊查詢可以採取以下方法:
一、先查詢出所有記錄,然後在邏輯層轉化為拼音首字母後查詢,但這種方法工作量大,不建議採取。
二、在需要搜索的表中添加一個欄位用於存放被檢索欄位內容對應的拼音,在搜索的時候同時去查詢這兩個欄位,這種方法可行,但會增加資料庫存放的大小。
三、在資料庫中建立一個函數,在執行查詢語句時通過此函數來轉化搜索。這種方法最簡單快捷,但需要掌握一定的編程知識。
② 如何模糊查找出拼音一樣或字形相近的漢字
這個應該是做出不難做好難。
這要看你的資料庫裡面要存儲著大量的拼音與漢字的相關信息。這樣數據量也是很大滴,所以需要很好的匹配演算法才是王道。
至於顯示這倒是很簡單。採用非同步,採用匹配演算法從資料庫中查找。
③ 通過拼音模糊搜索漢字的功能實現
這個,好像有些難度,記得以前有做過類似的題目,不過這個還涉及到顯示的問題呀...如果沒有輸入就不會顯示,vb和excel我還沒有學會如何融會貫通
我個人還有個疑問,那就是你還不如連在一起呢...你這么弄先輸入的是姓,但是還要選擇名,如果別人不知道的呢?怎麼選擇?連在一起之後就先輸入第一個字元,代表的就是姓,然後第二個字元,代表的就是名字,或者還有第三個......
Function pinyin(p As String) As String *自定義函數pinyin(),用來讀取漢字的拼音首字母
I = Asc(p)
Select Case i
Case -20319 To -20284: pinyin = "A"
Case -20283 To -19776: pinyin = "B"
Case -19775 To -19219: pinyin = "C"
Case -19218 To -18711: pinyin = "D"
Case -18710 To -18527: pinyin = "E"
Case -18526 To -18240: pinyin = "F"
Case -18239 To -17923: pinyin = "G"
Case -17922 To -17418: pinyin = "H"
Case -17417 To -16475: pinyin = "J"
Case -16474 To -16213: pinyin = "K"
Case -16212 To -15641: pinyin = "L"
Case -15640 To -15166: pinyin = "M"
Case -15165 To -14923: pinyin = "N"
Case -14922 To -14915: pinyin = "O"
Case -14914 To -14631: pinyin = "P"
Case -14630 To -14150: pinyin = "Q"
Case -14149 To -14091: pinyin = "R"
Case -14090 To -13319: pinyin = "S"
Case -13318 To -12839: pinyin = "T"
Case -12838 To -12557: pinyin = "W"
Case -12556 To -11848: pinyin = "X"
Case -11847 To -11056: pinyin = "Y"
Case -11055 To -2050: pinyin = "Z"
End Select
End Function
A=Ucase(Range("c" & 1).Value) *讀寫c1單元格的數據(我在網站上面看的,因為不是自己的電腦,沒有vb,無法驗證)
Z=len(a)-1 *z=字元串的長度-1,因為數組都是從0開始計算的
Dim b(z) as integer
For i=0 to z *循環,把輸入的字元串給單個的提取出來放入數組中
B(i)=mid(a,i+1,1)
Next
For i=0 to hangshu(excel的行數) *取消所有行的隱藏,因為下面的操作會隱藏行,可能會影響到下次操作,所以應該在每一次運行程序前取消所有的隱藏行
If Rows (「I」).EntireRow.Hidden = True Then
Rows("i").EntireRow.Hidden = False
End If
Next
For p=0 to z
For i=0 to hangshu(excel的行數) *循環
If pinyin(Range("a" & i).Value)<>a Then *不滿足條件的行全部隱藏
Rows("i").EntireRow.Hidden = True
End If
Next
Next
④ 用java在後台頁面實現拼音模糊查找
主要用到的就是SQL語句中的like匹配的問題,如:
"from table where name like %"+iname+"%"
table 是你要查詢的表 name是匹配的欄位 iname是輸入的字母 如果你想查詢包含輸入字母的就像上面的。 如果 首字母模糊查詢就把前面的% 去掉就行
"from table where name like "+iname+"%"
⑤ 用正則怎麼進行漢字的模糊匹配
這個不需要正則函數吧,我用MATLAB來判斷的話,直接用一個findstr命令就可以了,比如a='張三的歌',b=findstr(a,'張三'),結果就會返回張三所在的位置,應該是1。正則函數一般是匹配一般性的數字,或者字母,日期等,漢字的話一般是用[\u4e00-\u9fa5]來匹配。
⑥ 「模糊拼音法」是什麼意思
」模糊拼音法「是指一種中文輸入法,可用來輸入簡體中文。啟用模糊拼音後,拼音列表會顯示大於或少於輸入字母數的後備拼音。關閉模糊拼音後,拼音列表將只包括與輸入字母數完全相同的後備拼音。
⑦ C#基於拼音的模糊查詢,大神請看下,十分感謝
這個做過,但不知道是不是最方便的,體力活。
如資料庫表
idproctpinyin
1鴨子yazi
2雞肉jirou
3排骨paigu
4鴨頭yatou
前台textbox寫一個keydown事件什麼的然後用ajax,打拚音下面出一個層,中間顯示符合條件的
比如我鍵入ya那面下面有2個符合的出現鴨子、鴨頭建議3個字母以上開啟不然太多
在程序里寫個轉拼音的類,反正你又不想動又要做出來是不太可能了,總有一頭要受累的
⑧ 通訊錄拼音搜索模糊匹配的演算法問題
我用java寫了個簡單的,你可以多測試下:
publicstaticvoidmain(String[]args){
String[]name={"wang","hai","bao"};
String[]tests={"whb","WaHB","wangHB","HB","wh","whbo","whba"};
for(Stringstring:tests){
System.out.println(string+":"+match(name,string));
}
}
publicstaticbooleanmatch(String[]source,Stringinput){
if(source==null||source.length==0||input==null||input.length()==0){
returnfalse;
}
Stringtemp;
//統一轉小寫
input=input.toLowerCase();
for(inti=0;i<source.length;i++){
temp=source[i].toLowerCase();
if(temp==null||temp.length()==0){
returnfalse;
}
//最後一步特殊處理
if(i==source.length-1){
if(temp.startsWith(input)){
returntrue;
}
}
//輸入的字元完全匹配到
if(input.startsWith(temp)){
//匹配到後生成新的字元串
input=input.substring(0,input.indexOf(temp));
//System.out.println("temp:"+temp+" 匹配到後input:"+input);
}
//首字母匹配到
elseif(temp.startsWith(input.substring(0,1))){
input=input.substring(1);
//System.out.println("temp:"+temp+" 匹配到後input:"+input);
}else{
returnfalse;
}
//表示匹配結束
if(input.length()==0){
returntrue;
}
}
returnfalse;
}
⑨ 搜狗拼音的模糊音匹配問題
取消模糊音匹配
⑩ 求一漢字拼音匹配演算法
這可是大活
cxsj 可能是 程序設計,還可能是 持續時間