System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机数据处理,具体而言,涉及一种字符串信息处理方法、装置、电子设备及存储介质。
技术介绍
1、在数据结构中,字符串的长度信息通常需要用一种单独的存储结构来存储,常见的存储结构为利用定长数组存储字符串长度信息。
2、目前,一种存储方法是将字符串长度信息存储在字符定长数组之后。如facebook的开源库(facebook open-source library,folly)字符串,其在短字符串模式下可以把字符串填满数组后的字符串零结尾同时视为剩余长度0,以此兼容传统字符串并存储长度信息。
3、但是,通过上述现有的方式存储字符串长度信息,通常仅能支持存储长度在255以内的字符串,无法兼容更长的字符串。
技术实现思路
1、本申请的目的在于,针对上述现有技术中的不足,提供一种字符串信息处理方法、装置、电子设备及存储介质,以解决现有技术中无法兼容长度在255以上的字符串长度信息的存储的问题。
2、为实现上述目的,本申请采用的技术方案如下:
3、第一方面,本申请提供了一种字符串信息处理方法,所述方法包括:
4、根据目标字符串的第一长度以及预设字符存储空间的第二长度,确定所述预设字符存储空间的剩余长度;
5、根据所述剩余长度确定所述预设字符存储空间中的长度存储空间以及长度存储信息,所述长度存储信息用于指示所述长度存储空间中各字节上所存储的数值,且所述长度存储信息用于表征所述剩余长度;
6、将所述目标字符
7、可选地,所述根据所述剩余长度确定所述预设字符存储空间中的长度存储空间以及长度存储信息,包括:
8、根据所述剩余长度以及预设数值,确定所述长度存储空间以及所述长度存储信息。
9、可选地,所述根据所述剩余长度以及预设数值,确定所述长度存储空间以及所述长度存储信息,包括:
10、若所述剩余长度为0,则确定所述长度存储空间为所述预设字符存储空间中的最末字节,且所述长度存储信息所指示的数值为0;
11、若所述剩余长度为1,则确定所述长度存储空间为所述预设字符存储空间中的最末字节,且所述长度存储信息所指示的数值为1;
12、若所述剩余长度大于1,则确定所述长度存储空间为所述预设字符存储空间中以最末字节为起始且连续的多个字节,并根据所述剩余长度以及预设数值,确定所述多个字节中各字节内存储的数值。
13、可选地,所述多个字节包括:最末字节以及次末字节;
14、所述根据所述剩余长度以及预设数值,确定所述多个字节中各字节内存储的数值,包括:
15、计算所述剩余长度与字节最大存储数值的加和;
16、将所述加和与所述预设数值的比值取整结果作为所述最末字节所存储的数值;
17、将所述加和与所述预设数值的取模结果作为所述次末字节所存储的数值。
18、可选地,所述根据目标字符串的第一长度以及预设字符存储空间的第二长度,确定所述预设字符存储空间的剩余长度,包括:
19、根据所述第一长度,确定字符串的存储占用长度;
20、将所述第二长度减去所述存储占用长度的结果作为所述剩余长度。
21、可选地,所述方法还包括:
22、响应读取所述目标字符串的请求信息,根据所述长度存储空间中各字节上所存储的数值,确定所述目标字符串的长度信息;
23、按照所述目标字符串的长度信息,从所述预设字符存储空间读取所述目标字符串。
24、可选地,所述根据所述长度存储空间中各字节上所存储的数值,确定所述目标字符串的长度信息,包括:
25、若最末字节所存储的数值为0,则确定所述目标字符串的存储占用长度为所述第二长度,并根据所述存储占用长度确定所述目标字符串的长度信息;
26、若最末字节所存储的数值大于或等于1,则根据所述长度存储空间中各字节上所存储的数值以及预设数值,确定所述目标字符串的长度信息。
27、可选地,所述根据所述长度存储空间中各字节上所存储的数值以及预设数值,确定所述目标字符串的长度信息,包括:
28、计算所述最末字节所存储的数值与预设数值的乘积;
29、计算所述最末字节所存储的数值与预设数值的乘积与次末字节所存储的数值的和;
30、将最末字节所存储的数值与预设数值的乘积与次末字节所存储的数值的和减去字节最大存储数值,得到中间结果;
31、将所述第二长度减去所述中间结果的结果作为所述目标字符串的存储占用长度,并根据所述存储占用长度确定所述目标字符串的长度信息。
32、第二方面,本申请提供了一种字符串信息处理装置,所述装置包括:
33、第一确定模块,用于根据目标字符串的第一长度以及预设字符存储空间的第二长度,确定所述预设字符存储空间的剩余长度;
34、第二确定模块,用于根据所述剩余长度确定所述预设字符存储空间中的长度存储空间以及长度存储信息,所述长度存储信息用于指示所述长度存储空间中各字节上所存储的数值,且所述长度存储信息用于表征所述剩余长度;
35、存储模块,用于将所述目标字符串存储至所述预设字符存储空间,并在所述长度存储空间中存储所述长度存储信息。
36、可选地,所述第二确定模块具体用于:
37、根据所述剩余长度以及预设数值,确定所述长度存储空间以及所述长度存储信息。
38、可选地,所述第二确定模块具体用于:
39、若所述剩余长度为0,则确定所述长度存储空间为所述预设字符存储空间中的最末字节,且所述长度存储信息所指示的数值为0;
40、若所述剩余长度为1,则确定所述长度存储空间为所述预设字符存储空间中的最末字节,且所述长度存储信息所指示的数值为1;
41、若所述剩余长度大于1,则确定所述长度存储空间为所述预设字符存储空间中以最末字节为起始且连续的多个字节,并根据所述剩余长度以及预设数值,确定所述多个字节中各字节内存储的数值。
42、可选地,所述多个字节包括:最末字节以及次末字节;
43、可选地,所述第二确定模块具体用于:
44、计算所述剩余长度与字节最大存储数值的加和;
45、将所述加和与所述预设数值的比值取整结果作为所述最末字节所存储的数值;
46、将所述加和与所述预设数值的取模结果作为所述次末字节所存储的数值。
47、可选地,所述第一确定模块具体用于:
48、根据所述第一长度,确定字符串的存储占用长度;
49、将所述第二长度减去所述存储占用长度的结果作为所述剩余长度。
50、可选地,所述存储模块还用于:
51、响应读取所述目标字符串的请求信息,根据所述长度存储空间中各字节本文档来自技高网...
【技术保护点】
1.一种字符串信息处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的字符串信息处理方法,其特征在于,所述根据所述剩余长度确定所述预设字符存储空间中的长度存储空间以及长度存储信息,包括:
3.根据权利要求2所述的字符串信息处理方法,其特征在于,所述根据所述剩余长度以及预设数值,确定所述长度存储空间以及所述长度存储信息,包括:
4.根据权利要求3所述的字符串信息处理方法,其特征在于,所述多个字节包括:最末字节以及次末字节;
5.根据权利要求1所述的字符串信息处理方法,其特征在于,所述根据目标字符串的第一长度以及预设字符存储空间的第二长度,确定所述预设字符存储空间的剩余长度,包括:
6.根据权利要求1所述的字符串信息处理方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的字符串信息处理方法,其特征在于,所述根据所述长度存储空间中各字节上所存储的数值,确定所述目标字符串的长度信息,包括:
8.根据权利要求7所述的字符串信息处理方法,其特征在于,所述根据所述长度存储空间中各字节上所存储的
9.一种字符串信息处理装置,其特征在于,所述装置包括:
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如权利要求1至8任一所述的字符串信息处理方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至8任一所述的字符串信息处理方法的步骤。
...【技术特征摘要】
1.一种字符串信息处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的字符串信息处理方法,其特征在于,所述根据所述剩余长度确定所述预设字符存储空间中的长度存储空间以及长度存储信息,包括:
3.根据权利要求2所述的字符串信息处理方法,其特征在于,所述根据所述剩余长度以及预设数值,确定所述长度存储空间以及所述长度存储信息,包括:
4.根据权利要求3所述的字符串信息处理方法,其特征在于,所述多个字节包括:最末字节以及次末字节;
5.根据权利要求1所述的字符串信息处理方法,其特征在于,所述根据目标字符串的第一长度以及预设字符存储空间的第二长度,确定所述预设字符存储空间的剩余长度,包括:
6.根据权利要求1所述的字符串信息处理方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的字符串信息处理方法...
【专利技术属性】
技术研发人员:庄铭宇,
申请(专利权)人:恒生电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。