一种对混合型字符串表格的排序方法、系统和终端与流程

文档序号:20187879发布日期:2020-03-27 19:19阅读:151来源:国知局
一种对混合型字符串表格的排序方法、系统和终端与流程

本发明涉及字符串排序技术,尤指一种对混合型字符串表格的排序方法、系统和终端。



背景技术:

在电子表格中,为方便查找、观察数据,需要对数据进行排序。例如:按照总分排序、按照日期排序、按照姓名排序、按照地址排序。电子表格中可存储数字、文字。混合型字符串电子表格指的是一张电子表格中同时包含了‘数字字符’和‘非数字字符’的字符串。

在现有对电子表格的内容进行排序的技术中,对‘混合型字符串’排序和对‘普通字符串(即数字字符串)’排序使用的是同一套规则,将混合型字符串中的每个数字字符作为普通字符进行比较、排序。按此规则,排序结果往往与期望值相去甚远。图1a为一张混合型字符串表格,图1b为对图1a所示的表格按照住址进行升序后的结果。按照现有的排序规则,比如图1a中‘10栋’的第一个字符是1,‘9栋’的第一个字符是9,1小于9,所以‘10栋’会排在‘9栋’前面,以此类推,而这样的结果不符合日常使用习惯。



技术实现要素:

为了解决上述技术问题,本发明提供了一种对混合型字符串表格的排序方法、系统和终端,能够对混合型字符串表格内容进行准确排序。

为了达到本发明目的,本发明提供了一种对混合型字符串表格的排序方法,包括:

定位待排序的混合型字符串表格中与排序依据对应的列;

将该列每一行的混合型字符串区分非数字字符串和数字字符串;

对待排序的混合型字符串表格按照所述非数字字符串进行第一次排序,若所述待排序的混合型字符串表格进行第一排序后的所述列中存在相同的非数字字符串,则对所述相同的非数字字符串对应的表格内容按照数字字符串进行再次排序。

作为一种实施方式,所述方法还包括:

若对所述待排序的混合型字符串表格进行再次排序后的所述列中存在相同的非数字字符串以及相同的数字字符串,且存在未参与排序的数字字符串的情况下,对所述相同的非数字字符串以及相同的数字字符串对应的表格内容按照未参与排序的数字字符串进行再次排序。

作为一种实施方式,所述将该列每一行的混合型字符串区分数字字符串,包括:

当该列每一行的混合型字符串中包含多个数字字符串时,按照多个数字字符串在所述混合型字符串中的排列顺序依次从该列每一行的混合型字符串中区分出所述多个数字字符串。

作为一种实施方式,所述将该列每一行的混合型字符串区分非数字字符串和数字字符串,包括:

从该列每一行的混合型字符串中区分数字字符串后,在混合型字符串中原数字字符串所在的位置设置占位符得到非数字字符串。

本发明实施例还提供了一种对混合型字符串表格的排序系统,包括:

定位模块,用于定位待排序的混合型字符串表格中与排序依据对应的列;

分析模块,用于将该列每一行的混合型字符串区分非数字字符串和数字字符串;

排序模块,用于对待排序的混合型字符串表格按照所述非数字字符串进行第一次排序,若所述待排序的混合型字符串表格进行第一排序后的所述列中存在相同的非数字字符串,则对所述相同的非数字字符串对应的表格内容按照数字字符串进行再次排序。

作为一种实施方式,所述排序模块,还用于若对所述待排序的混合型字符串表格进行再次排序后的所述列中存在相同的非数字字符串以及相同的数字字符串,且存在未参与排序的数字字符串的情况下,对所述相同的非数字字符串以及相同的数字字符串对应的表格内容按照未参与排序的数字字符串进行再次排序。

作为一种实施方式,分析模块,用于将该列每一行的混合型字符串区分数字字符串,包括:

当该列每一行的混合型字符串中包含多个数字字符串时,按照多个数字字符串在所述混合型字符串中的排列顺序依次从该列每一行的混合型字符串中区分出所述多个数字字符串。

作为一种实施方式,分析模块,用于将该列每一行的混合型字符串区分非数字字符串和数字字符串,包括:

从该列每一行的混合型字符串中区分数字字符串后,在混合型字符串中原数字字符串所在的位置设置占位符得到非数字字符串。

本发明实施例还提供了一种对混合型字符串表格的排序终端,包括:

存储器,用于存储指令;

处理器,用于执行所述指令以实现如上所述的对混合型字符串表格的排序方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如上所述的对混合型字符串表格的排序方法的步骤。

与现有技术相比,本发明包括:定位待排序的混合型字符串表格中与排序依据对应的列;将该列每一行的混合型字符串区分非数字字符串和数字字符串;对待排序的混合型字符串表格按照所述非数字字符串进行第一次排序,若所述待排序的混合型字符串表格进行第一排序后的所述列中存在相同的非数字字符串,则对所述相同的非数字字符串对应的表格内容按照数字字符串进行再次排序。本发明能够对混合型字符串表格内容进行准确排序。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1a为混合型字符串表格示意图;

图1b为按照现有技术对图1a所示的表格按照住址进行升序后的结果;

图2为本发明实施例提供的对混合型字符串表格的排序方法流程图;

图3a为本发明应用示例中从混合型字符串表格中提取出非数字字符串和数字字符串的示意图;

图3b为本发明应用示例中对待排序的混合型字符串表格按照非数字字符串排序后的表格示意图;

图3c为本发明应用示例中对图3b所示表格按照数字字符串1进行排序后的表格示意图;

图3d为本发明应用示例中对图3c所示表格按照数字字符串2进行排序后的表格示意图;

图4为本发明实施例提供的对混合型字符串表格的排序系统组成模块图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明实施例提供了一种对混合型字符串表格的排序方法,如图2所示,所述方法包括:

s201定位待排序的混合型字符串表格中与排序依据对应的列;

s202将该列每一行的混合型字符串区分非数字字符串和数字字符串;

作为一种实施方式,步骤s202可以包括:当该列每一行的混合型字符串中包含多个数字字符串时,按照多个数字字符串在原混合型字符串中的排列顺序从该列每一行的混合型字符串中依次区分所述多个数字字符串;如对混合型字符串“康和家园10栋304单元”区分后的非数字字符串为“康和家园栋单元”,数字字符串有2个,按照顺序依次为“10”和“304”;从混合型字符串中提取出数字字符串后,可以在原数字字符串的位置设置占位符,如“#”,这样,前述的非数字字符串“康和家园栋单元”就变为“康和家园#栋#单元”。根据日常使用习惯,从不同类的混合型字符串中区分出的非数字字符串也希望处于不同类,如两类混合型字符串“长安街2号”和“长安6街8号”,如果不设置占位符,从混合型字符串中区分中的非数字字符串均为“长安街号”,而如果设置占位符,从两类混合型字符串中提取出的非数字字符串分别为“长安街#号”和“长安#街#号”,符合人们的使用习惯;

s203对待排序的混合型字符串表格按照所述非数字字符串进行第一次排序,若所述待排序的混合型字符串表格进行第一排序后的所述列中存在相同的非数字字符串,则对所述相同的非数字字符串对应的表格内容按照数字字符串进行再次排序。

在一些情况下,若对所述待排序的混合型字符串表格进行再次排序后的所述列中存在相同的非数字字符串以及相同的数字字符串,且存在未参与排序的数字字符串的情况下,对所述相同的非数字字符串以及相同的数字字符串对应的表格内容按照未参与排序的数字字符串进行再次排序。

所述非数字字符串可以为:字母、汉字、标点、占位符等;对待排序的混合型字符串表格按照所述非数字字符串进行第一次排序,包括:对待排序的混合型字符串表格按照非数字字符串的计算机编码进行第一次排序。在一些情况下,当非数字字符串仅包含汉字时,可以对待排序的混合型字符串表格按照汉字的拼音字母顺序和/或笔画顺序进行第一次排序。现有计算机领域,已经有对非数字字符串进行排序的技术方案,本发明不再累述。待排序的混合型字符串表格按照非数字字符串进行排序后,可以保证处于同一类的混合型字符串被排列在一起。

本发明能够对混合型字符串表格内容进行准确排序。

下面以一个具体的应用示例对上述实施例进行说明。

同样以图1a所示的混合型字符串表格为例,以住址升序对该表格排序,即排序依据是住址。

定位“住址”在待排序的混合型字符串表格中的列;

逐行分析该列中的内容,将每个混合型字符串中的每个数字字符串用一个特殊字符#代替,将从每行混合型字符串中顺序提取出的数字字符串依次作为“数字字符串1”和“数字字符串2”放入临时表中;将从每行中提取出的非数字字符串也放入临时表中,所述临时表如图3a所示;图3a所示的临时表设置在图1a所示的表格右侧;临时表的行和待排序的混合型字符串表格的行是对应的;

对待排序的混合型字符串表格和临时表组成的新表按照非数字字符串排序得到图3b;

分别对地址为“康和花园”的住址和地址为“雨欣花园”的住址按照数字字符串1进行排序得到图3c;

对康和花园中位于同一栋的地址按照数字字符串2进行排序,得到图3d;

图3d所示的表格中前2列即为按照地址升序排序后的混合型字符串表格。

本发明实施例还提供了一种对混合型字符串表格的排序系统,如图4所示,所述系统包括:

定位模块401,用于定位待排序的混合型字符串表格中与排序依据对应的列;

分析模块402,用于将该列每一行的混合型字符串区分非数字字符串和数字字符串;

作为一种实施方式,分析模块402,用于将该列每一行的混合型字符串区分数字字符串,包括:当该列每一行的混合型字符串中包含多个数字字符串时,按照多个数字字符串在所述混合型字符串中的排列顺序依次从该列每一行的混合型字符串中区分出所述多个数字字符串,如对混合型字符串“康和家园10栋304单元”区分后的非数字字符串为“康和家园栋单元”,数字字符串有2个,按照顺序依次为“10”和“304”。

作为一种实施方式,分析模块402,用于将该列每一行的混合型字符串区分非数字字符串和数字字符串,包括:从该列每一行的混合型字符串中区分数字字符串后,在混合型字符串中原数字字符串所在的位置设置占位符得到非数字字符串。这样,前述的非数字字符串“康和家园栋单元”就变为“康和家园#栋#单元”。根据日常使用习惯,从不同类的混合型字符串中区分出的非数字字符串也希望处于不同类,如两类混合型字符串“长安街2号”和“长安6街8号”,如果不设置占位符,从混合型字符串中区分中的非数字字符串均为“长安街号”,而如果设置占位符,从两类混合型字符串中提取出的非数字字符串分别为“长安街#号”和“长安#街#号”,符合人们的使用习惯。

排序模块403,用于对待排序的混合型字符串表格按照所述非数字字符串进行第一次排序,若所述待排序的混合型字符串表格进行第一排序后的所述列中存在相同的非数字字符串,则对所述相同的非数字字符串对应的表格内容按照数字字符串进行再次排序。

在一些情况下,所述排序模块403,还用于若对所述待排序的混合型字符串表格进行再次排序后的所述列中存在相同的非数字字符串以及相同的数字字符串,且存在未参与排序的数字字符串的情况下,对所述相同的非数字字符串以及相同的数字字符串对应的表格内容按照未参与排序的数字字符串进行再次排序。所述非数字字符串可以为:字母、汉字、标点、占位符等;对待排序的混合型字符串表格按照所述非数字字符串进行第一次排序,包括:对待排序的混合型字符串表格按照非数字字符串的计算机编码进行第一次排序。在一些情况下,当非数字字符串仅包含汉字时,可以对待排序的混合型字符串表格按照汉字的拼音字母顺序和/或笔画顺序进行第一次排序。现有计算机领域,已经有对非数字字符串进行排序的技术方案,本发明不再累述。待排序的混合型字符串表格按照非数字字符串进行排序后,可以保证处于同一类的混合型字符串被排列在一起。

本发明能够对混合型字符串表格内容进行准确排序。

本发明实施例还提供了一种对混合型字符串表格的排序终端,包括:

存储器,用于存储指令;

处理器,用于执行所述指令以实现如前述实施例所述的对混合型字符串表格的排序方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前述实施例所述的对混合型字符串表格的排序方法的步骤。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1