[發(fā)明專利]一種java代碼結(jié)構(gòu)化檢索方法在審
| 申請(qǐng)?zhí)枺?/td> | 201811447656.2 | 申請(qǐng)日: | 2018-11-29 |
| 公開(公告)號(hào): | CN109669942A | 公開(公告)日: | 2019-04-23 |
| 發(fā)明(設(shè)計(jì))人: | 宓建棟 | 申請(qǐng)(專利權(quán))人: | 杭州仟金頂信息科技有限公司 |
| 主分類號(hào): | G06F16/22 | 分類號(hào): | G06F16/22;G06F16/332;G06F8/36 |
| 代理公司: | 杭州杭誠專利事務(wù)所有限公司 33109 | 代理人: | 尉偉敏 |
| 地址: | 310051 浙江*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 結(jié)構(gòu)化 匹配 檢索 結(jié)構(gòu)化檢索 索引集合 跳轉(zhuǎn) 建立數(shù)據(jù)庫 結(jié)構(gòu)化分析 程序代碼 錯(cuò)誤信息 對(duì)應(yīng)文件 檢索內(nèi)容 檢索效率 結(jié)果保存 匹配成功 顯示結(jié)果 彈出 失敗 | ||
1.一種java代碼結(jié)構(gòu)化檢索方法,其特征在于,包括以下步驟:
步驟S01:對(duì)程序代碼做結(jié)構(gòu)化分析,整理出對(duì)應(yīng)的若干className、methodName及methodBody,將結(jié)果保存為索引集合;
步驟S02:輸入需要尋找的文件的className及methodName中至少一項(xiàng)的部分或全部?jī)?nèi)容以及methodBody的部分或全部?jī)?nèi)容,對(duì)索引集合中對(duì)應(yīng)內(nèi)容進(jìn)行結(jié)構(gòu)化匹配,如匹配失敗則進(jìn)入步驟S03,如匹配成功則跳轉(zhuǎn)至步驟S04;
步驟S03:顯示錯(cuò)誤信息并重新跳轉(zhuǎn)至步驟S02;
步驟S04:顯示結(jié)果報(bào)告并彈出包括檢索內(nèi)容的對(duì)應(yīng)文件。
2.根據(jù)權(quán)利要求1所述的一種java代碼結(jié)構(gòu)化檢索方法,其特征在于,所述步驟S01中,結(jié)構(gòu)化分析的過程為:
步驟A1:取源代碼集合S的一個(gè)元素s,利用java反射技術(shù)分析元素s得到若干個(gè)className,以及每個(gè)className對(duì)應(yīng)的若干個(gè)methodName,將每個(gè)methodName及其對(duì)應(yīng)的className保存為元素m,若干元素m組成集合M;
步驟A2:從集合M中取出一個(gè)元素m,與源代碼集合S中對(duì)應(yīng)元素s進(jìn)行多次匹配,將每次結(jié)果標(biāo)記為mb,匯總結(jié)果保存到索引集合MB,所述每個(gè)元素mb包括一組className、methodName及methodBody;
步驟A3:重復(fù)執(zhí)行步驟A1及A2,直到源代碼集合S中所有元素均完成分析及匹配。
3.根據(jù)權(quán)利要求2所述的一種java代碼結(jié)構(gòu)化檢索方法,其特征在于,所述步驟A2中,匹配過程為:
在代碼元素s中找到元素m中methodName對(duì)應(yīng)的字符串,將該字符串之后的第一個(gè)“{”標(biāo)記為methodBodyBegin,再將最后一個(gè)“}”標(biāo)記為methodBodyEnd,然后根據(jù)methodBodyBegin及methodBodyEnd對(duì)源代碼文件進(jìn)行子字符串截取,得到mb。
4.根據(jù)權(quán)利要求3所述的一種java代碼結(jié)構(gòu)化檢索方法,其特征在于,所述最后一個(gè)“}”的尋找方法為:創(chuàng)建一個(gè)初始值為零的變量i,然后在第一個(gè)“{”后依次向下尋找,每尋找到一個(gè)“{”便使變量i加一,每尋找到一個(gè)“}”便使變量i減一,當(dāng)變量i的值為零時(shí),尋找到的“}”就是最后一個(gè)“}”。
5.根據(jù)權(quán)利要求1所述的一種java代碼結(jié)構(gòu)化檢索方法,其特征在于,所述步驟S02中,結(jié)構(gòu)化匹配過程為:根據(jù)輸入內(nèi)容對(duì)索引集合中元素的className及methodName進(jìn)行匹配,篩選出包含對(duì)應(yīng)內(nèi)容的元素,對(duì)包含對(duì)應(yīng)內(nèi)容的元素的methodBody進(jìn)行匹配,尋找到具體結(jié)果所在的位置,其中該過程任意一次匹配沒有成功則認(rèn)定為匹配失敗。
6.根據(jù)權(quán)利要求5所述的一種java代碼結(jié)構(gòu)化檢索方法,其特征在于,所述步驟S03中,錯(cuò)誤信息包括:匹配失敗時(shí)所在的匹配類型。
7.根據(jù)權(quán)利要求5所述的一種java代碼結(jié)構(gòu)化檢索方法,其特征在于,所述步驟S04中,結(jié)果報(bào)告包括:匹配所用時(shí)間及目標(biāo)文件的目錄。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州仟金頂信息科技有限公司,未經(jīng)杭州仟金頂信息科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811447656.2/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 用于使文本結(jié)構(gòu)化的方法和裝置
- 用于地下儲(chǔ)層模擬的系統(tǒng)和方法
- 文檔結(jié)構(gòu)化方法和裝置
- 一種將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)的方法及裝置
- 一種基于事件的半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)采集系統(tǒng)
- 文本結(jié)構(gòu)化方法、裝置、系統(tǒng)和非易失性存儲(chǔ)介質(zhì)
- 信息關(guān)聯(lián)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 文本結(jié)構(gòu)化方法、裝置、系統(tǒng)和非易失性存儲(chǔ)介質(zhì)
- 結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)方法、裝置、設(shè)備及介質(zhì)
- 一種融合結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的混合搜索方法
- 一種結(jié)構(gòu)化信息檢索方法和系統(tǒng)
- 非結(jié)構(gòu)化數(shù)據(jù)的結(jié)構(gòu)化檢索方法及系統(tǒng)
- 一種結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)綜合檢索的系統(tǒng)及方法
- 一種面向結(jié)構(gòu)化醫(yī)藥信息的檢索方法和系統(tǒng)
- 基于人工智能的點(diǎn)播資源的檢索方法、裝置和終端設(shè)備
- 一種關(guān)于多維有限枚舉數(shù)據(jù)的壓縮檢索方法
- 一種數(shù)據(jù)處理方法及裝置
- 檢索方法、查詢方法、裝置、系統(tǒng)、電子設(shè)備和計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 一種基于Hbase的醫(yī)療數(shù)據(jù)管理方法及其系統(tǒng)
- 一種數(shù)據(jù)檢索方法及電子設(shè)備





