System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據處理,尤其涉及一種從二維數組中解析出字符串關系的方法、裝置及電子設備。
技術介紹
1、復雜的關鍵詞組合通常指的是在信息檢索、數據庫查詢或搜索引擎中使用多個關鍵詞,并通過邏輯運算符(如?and、or、not)以及可能的括號來構建更精確和復雜的搜索條件。這種組合可以大大提高搜索的準確性和相關性,但也增加了查詢的復雜性。
2、現有技術在處理復雜的關鍵詞組合的過程中,存在如下問題:
3、1.復雜度高:現有技術可能在處理復雜的關鍵詞組合時存在困難。代碼通過嵌套循環和條件判斷來處理不同情況,這表明現有方法可能需要復雜的邏輯來處理各種情況。
4、2.靈活性不足:現有技術可能難以適應不同的輸入格式或關系類型。代碼嘗試處理不同的輸入情況(如單個關鍵詞和關鍵詞數組),但可能仍有一些邊緣情況未被考慮。
5、3.錯誤處理不完善:很多現有方法可能缺乏對異常輸入的處理。代碼沒有明確的錯誤處理機制,這在實際應用中可能導致問題。
6、上述問題成為需要解決的技術問題。
技術實現思路
1、有鑒于此,本專利技術實施例提供了一種從二維數組中解析出字符串關系的方法、裝置及電子設備,至少部分解決現有技術中存在的問題。
2、第一方面,本專利技術實施例提供了一種從二維數組中解析出字符串關系的方法,包括:
3、接收一個或多個包含關鍵詞k和可選關系數組r的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式;
4、當輸入對象中未提供關系數組r時,將關系數組r初始化為空數組;
5、依次遍歷每一個關鍵詞組,根據前一個關鍵詞組與其之間的預設關系,對當前關鍵詞組進行處理,若當前關鍵詞組與前一個關鍵詞組是and關系,則將當前關鍵詞組內所有關鍵詞用or連接并置于括號內以確保邏輯正確性,若當前關鍵詞組與前一個關鍵詞組是or關系或當前關鍵詞組僅有一個關鍵詞,則直接使用or操作符連接當前關鍵詞組內的關鍵詞;
6、將經過處理的關鍵詞組按照各自的關系通過and或or邏輯操作符拼接到結果字符串中,針對含有and邏輯的部分添加額外的括號來增強表達式的清晰度,并調整邏輯操作符周圍的空間布局;
7、返回構造完畢的查詢字符串,返回的字符串反映了給定關鍵詞之間的邏輯關系,并且遵循統一的格式規范。
8、根據本專利技術實施例的一種具體實現方式,所述接收一個或多個包含關鍵詞k和可選關系數組r的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式,包括:
9、對于每一個元素k∈k,創建一個新的子數組并將k放入其中;
10、將所有子數組收集起來形成新的二維數組k’。
11、根據本專利技術實施例的一種具體實現方式,所述接收一個或多個包含關鍵詞k和可選關系數組r的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式,還包括:
12、若二維數組k’中的元素是字符串,則將字符串元素轉換為數值元素。
13、根據本專利技術實施例的一種具體實現方式,所述當輸入對象中未提供關系數組r時,將關系數組r初始化為空數組,包括:
14、確認輸入對象中是否包含了關系數組,如果在輸入對象中沒有找到關系數組,則創建一個新的空數組來代表r。
15、根據本專利技術實施例的一種具體實現方式,所述依次遍歷每一個關鍵詞組,根據前一個關鍵詞組與其之間的預設關系,對當前關鍵詞組進行處理,包括:
16、確認已經將關鍵詞轉換為二維數組格式k,其中每個元素是一個包含一個或多個關鍵詞的子數組;
17、如果當前關鍵詞組未提供關系數組r,則將其初始化為空數組,如果提供了r,確保它的長度是k的長度減一。
18、根據本專利技術實施例的一種具體實現方式,所述依次遍歷每一個關鍵詞組,根據前一個關鍵詞組與其之間的預設關系,對當前關鍵詞組進行處理,還包括:
19、從第一個關鍵詞組開始遍歷直到最后一個關鍵詞組,對于每一個關鍵詞組ki,檢查r中對應的位置ri-1來確定與前一個關鍵詞組ki-1的關系,i是當前關鍵詞組的索引,0≤i<n,n是關鍵詞組的數量;
20、如果ri-1是and關系,則將當前關鍵詞組ki內的所有關鍵詞用or連接,并將整個表達式用括號包圍;
21、如果ri-1是or關系或者當前關鍵詞組是第一個關鍵詞組,則直接使用or操作符連接ki中的關鍵詞。
22、根據本專利技術實施例的一種具體實現方式,所述將經過處理的關鍵詞組按照各自的關系通過and或or邏輯操作符拼接到結果字符串中,包括:
23、初始化一個空的結果字符串q,用于存放最終生成的查詢字符串;
24、對于第一個關鍵詞組k0,直接將其處理后的形式添加到結果字符串q中;
25、對于第二個及以后的關鍵詞組ki,根據ri?1來確定與前一個關鍵詞組ki?1之間的關系,并據此在結果字符串中添加相應的邏輯操作符和處理后的關鍵詞組。
26、根據本專利技術實施例的一種具體實現方式,所述將經過處理的關鍵詞組按照各自的關系通過and或or邏輯操作符拼接到結果字符串中,還包括:
27、如果ri?1是and關系,則在結果字符串q后面加上and操作符,然后加上當前關鍵詞組ki處理后的形式;
28、如果ri?1是or關系,則在結果字符串q后面加上or操作符,然后加上當前關鍵詞組ki處理后的形式。
29、第二方面,本專利技術實施例提供了一種從二維數組中解析出字符串關系的裝置,包括:
30、接受模塊,接收一個或多個包含關鍵詞k和可選關系數組r的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式;
31、初始模塊,當輸入對象中未提供關系數組r時,將關系數組r初始化為空數組;
32、遍歷模塊,依次遍歷每一個關鍵詞組,根據前一個關鍵詞組與其之間的預設關系,對當前關鍵詞組進行處理,若當前關鍵詞組與前一個關鍵詞組是and關系,則將當前關鍵詞組內所有關鍵詞用or連接并置于括號內以確保邏輯正確性,若當前關鍵詞組與前一個關鍵詞組是or關系或當前關鍵詞組僅有一個關鍵詞,則直接使用or操作符連接當前關鍵詞組內的關鍵詞;
33、拼接模塊,將經過處理的關鍵詞組按照各自的關系通過and或or邏輯操作符拼接到結果字符串中,針對含有and邏輯的部分添加額外的括號來增強表達式的清晰度,并調整邏輯操作符周圍的空間布局;
34、返回模塊,返回構造完畢的查詢字符串,返回的字符串反映了給定關鍵詞之間的邏輯關系,并且遵循統一的格式規范。
35、第三方面,本專利技術實施例還提供了一種電子設備,該電子設備包括:
36、至少一個處理器;以及,
37、與該至少一個處理器通信連接的存儲器;其中,
38、該存儲器存儲有可被該至本文檔來自技高網...
【技術保護點】
1.一種從二維數組中解析出字符串關系的方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述接收一個或多個包含關鍵詞K和可選關系數組R的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式,包括:
3.根據權利要求2所述的方法,其特征在于,所述接收一個或多個包含關鍵詞K和可選關系數組R的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式,還包括:
4.根據權利要求3所述的方法,其特征在于,所述當輸入對象中未提供關系數組R時,將關系數組R初始化為空數組,包括:
5.根據權利要求4所述的方法,其特征在于,所述依次遍歷每一個關鍵詞組,根據前一個關鍵詞組與其之間的預設關系,對當前關鍵詞組進行處理,包括:
6.根據權利要求5所述的方法,其特征在于,所述依次遍歷每一個關鍵詞組,根據前一個關鍵詞組與其之間的預設關系,對當前關鍵詞組進行處理,還包括:
7.根據權利要求6所述的方法,其特征在于,所述將經過處理的關鍵詞組按照各自的關系通過AND或OR邏輯操作符拼
8.根據權利要求7所述的方法,其特征在于,所述將經過處理的關鍵詞組按照各自的關系通過AND或OR邏輯操作符拼接到結果字符串中,還包括:
9.一種從二維數組中解析出字符串關系的裝置,其特征在于,包括:
10.一種電子設備,其特征在于,所述電子設備包括:
...【技術特征摘要】
1.一種從二維數組中解析出字符串關系的方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述接收一個或多個包含關鍵詞k和可選關系數組r的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式,包括:
3.根據權利要求2所述的方法,其特征在于,所述接收一個或多個包含關鍵詞k和可選關系數組r的輸入對象,若輸入對象中的關鍵詞為字符串數組,則將字符串數組轉換為二維數組格式,還包括:
4.根據權利要求3所述的方法,其特征在于,所述當輸入對象中未提供關系數組r時,將關系數組r初始化為空數組,包括:
5.根據權利要求4所述的方法,其特征在于,所述依次遍歷每一個關鍵詞組,根據...
【專利技術屬性】
技術研發人員:吳棟,周少博,寇振芳,李蕾,苗宇,
申請(專利權)人:一網互通北京科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。