System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,尤其涉及一種字符序列生成方法、裝置、電子設備、芯片及存儲介質。
技術介紹
1、在現有的技術方案中,字符序列的唯一性一般通過校驗來控制。通過算法,例如隨機算法或非隨機算法,生成字符序列,將生成的字符序列與已經存在的字符序列進行逐一比對,若重復,則將該字符序列丟棄,并再次生成新的序列,直到序列不再重復,然而,當現有的字符序列數量不斷增長時,這種方式需要遍歷所有字符序列,會導致系統運行效率降低。
技術實現思路
1、本申請實施例提供了一種字符序列生成方法、字符序列生成裝置、電子設備、芯片及計算機可讀存儲介質。
2、本申請實施例的技術方案是這樣實現的:
3、第一方面,本申請實施例提供了一種字符序列生成方法,包括:
4、構建字符集;所述字符集中的元素與索引一一對應;
5、獲取第一字符序列;所述第一字符序列為系統中當前存在的最大字符序列;
6、基于所述字符集、所述第一字符序列以及預設步長中的至少之一,生成第二字符序列。
7、本申請實施例所提供的字符序列生成方法,所述基于所述字符集、所述第一字符序列以及預設步長中的至少之一,生成第二字符序列,包括:
8、若所述第一字符序列中存在元素不屬于所述字符集,則基于所述字符集,初始化生成所述第二字符序列,所述第二字符序列的序列位數與所述第一字符序列的序列位數相同。
9、本申請實施例所提供的字符序列生成方法,所述基于所述字符集、所述第一字符序列以及
10、若所述第一字符序列中的元素都屬于所述字符集,則在所述第一字符序列的基礎上按照所述預設步長進位,生成所述第二字符序列。
11、本申請實施例所提供的字符序列生成方法,所述在所述第一字符序列的基礎上按照所述預設步長進位,生成所述第二字符序列,包括:
12、從所述第一字符序列的最低位開始至所述第一字符序列的最高位結束,確定第一序列位;所述第一序列位為進位后符合預設規則的序列位;
13、將所述第一字符序列中所述第一序列位的元素按照預設步長進位,并將所述第一字符序列中低于所述第一序列位的序列位初始化,生成所述第二字符序列;
14、若從所述第一字符序列的最低位至所述第一字符序列的最高位,所有序列位進位后都不符合預設規則,則將所述第一字符序列的序列位數加1,基于所述字符集,初始化生成所述第二字符序列。
15、本申請實施例所提供的字符序列生成方法,所述預設規則包括:字符序列中各個元素不重復。
16、本申請實施例所提供的字符序列生成方法,所述字符集中的元素種類包括以下至少一種:字母、數字和特殊字符。
17、本申請實施例所提供的字符序列生成方法,還包括:
18、對接收到的請求中用戶的唯一標識加鎖;
19、當達到預設時長和/或生成所述請求中用戶對應的第二字符序列時,釋放鎖。
20、第二方面,本申請實施例提供了一種字符序列生成裝置,包括:
21、構建單元:用于構建字符集;所述字符集中的元素與索引一一對應;
22、獲取單元:用于獲取第一字符序列;所述第一字符序列為系統中當前存在的最大字符序列;
23、生成單元:用于基于所述字符集、所述第一字符序列以及預設步長中的至少之一,生成第二字符序列。
24、本申請實施例中,所述生成單元,具體用于若所述第一字符序列中存在元素不屬于所述字符集,則基于所述字符集,初始化生成所述第二字符序列,所述第二字符序列的序列位數與所述第一字符序列的序列位數相同。
25、本申請實施例中,所述生成單元,具體用于若所述第一字符序列中的元素都屬于所述字符集,則在所述第一字符序列的基礎上按照所述預設步長進位,生成所述第二字符序列。
26、本申請實施例中,所述生成單元,具體用于從所述第一字符序列的最低位開始至所述第一字符序列的最高位結束,確定第一序列位;所述第一序列位為進位后符合預設規則的序列位;將所述第一字符序列中所述第一序列位的元素按照預設步長進位,并將所述第一字符序列中低于所述第一序列位的序列位初始化,生成所述第二字符序列;若從所述第一字符序列的最低位至所述第一字符序列的最高位,所有序列位進位后都不符合預設規則,則將所述第一字符序列的序列位數加1,基于所述字符集,初始化生成所述第二字符序列。
27、本申請實施例中,所述預設規則包括:字符序列中各個元素不重復。
28、本申請實施例中,所述字符集中的元素種類包括以下至少一種:字母、數字和特殊字符。
29、本申請實施例中,所述獲取單元,還用于對接收到的請求中用戶的唯一標識加鎖;當達到預設時長和/或生成所述請求中用戶對應的第二字符序列時,釋放鎖。
30、第三方面,本申請提供一種電子設備,包括:處理器和存儲器,該存儲器用于存儲計算機程序,所述處理器用于調用并運行所述存儲器中存儲的計算機程序,執行本申請實施例所提供的任意一種字符序列生成方法。
31、第四方面,本申請提供一種芯片,包括:處理器,用于從存儲器中調用并運行計算機程序,使得安裝有所述芯片的設備執行本申請實施例所提供的任意一種字符序列生成方法。
32、第五方面,本申請提供一種計算機可讀存儲介質,用于存儲計算機程序,所述計算機程序使得計算機執行本申請實施例所提供的任意一種字符序列生成方法。
33、本申請實施例所提供的字符序列生成方法,通過構建字符集,定義字符集中各個字符元素的索引,再結合系統中當前存在的最大字符序列以及預設的步長,生成新的字符序列,無需遍歷所有數據就可以保證生成的新的字符序列的唯一性,提升系統的運行效率。
本文檔來自技高網...【技術保護點】
1.一種字符序列生成方法,其特征在于,包括:
2.根據權利要求1所述的字符序列生成方法,其特征在于,所述基于所述字符集、所述第一字符序列以及預設步長中的至少之一,生成第二字符序列,包括:
3.根據權利要求1所述的字符序列生成方法,其特征在于,所述基于所述字符集、所述第一字符序列以及預設步長中的至少之一,生成第二字符序列,包括:
4.根據權利要求3所述的字符序列生成方法,其特征在于,所述在所述第一字符序列的基礎上按照所述預設步長進位,生成所述第二字符序列,包括:
5.根據權利要求1所述的字符序列生成方法,其特征在于,
6.根據權利要求1所述的字符序列生成方法,其特征在于,
7.根據權利要求1-6中任一項所述的字符序列生成方法,其特征在于,還包括:
8.一種字符序列生成裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括:處理器和存儲器,該存儲器用于存儲計算機程序,所述處理器用于調用并運行所述存儲器中存儲的計算機程序,執行如權利要求1-7中任一項所述的字符序列生成方法。
11.一種計算機可讀存儲介質,其特征在于,用于存儲計算機程序,所述計算機程序使得計算機執行如權利要求1-7中任一項所述的字符序列生成方法。
...【技術特征摘要】
1.一種字符序列生成方法,其特征在于,包括:
2.根據權利要求1所述的字符序列生成方法,其特征在于,所述基于所述字符集、所述第一字符序列以及預設步長中的至少之一,生成第二字符序列,包括:
3.根據權利要求1所述的字符序列生成方法,其特征在于,所述基于所述字符集、所述第一字符序列以及預設步長中的至少之一,生成第二字符序列,包括:
4.根據權利要求3所述的字符序列生成方法,其特征在于,所述在所述第一字符序列的基礎上按照所述預設步長進位,生成所述第二字符序列,包括:
5.根據權利要求1所述的字符序列生成方法,其特征在于,
6.根據權利要求1所述的字符序列生成方法,其特征在于,
7...
【專利技術屬性】
技術研發人員:劉嘉凝,蘇濤,徐東升,朱瑞鋒,
申請(專利權)人:中移上海信息通信科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。