CN104615663B - 文件排序方法、装置及终端 - Google Patents
文件排序方法、装置及终端 Download PDFInfo
- Publication number
- CN104615663B CN104615663B CN201510007414.1A CN201510007414A CN104615663B CN 104615663 B CN104615663 B CN 104615663B CN 201510007414 A CN201510007414 A CN 201510007414A CN 104615663 B CN104615663 B CN 104615663B
- Authority
- CN
- China
- Prior art keywords
- character
- character string
- string
- file
- filename
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种文件排序方法、装置及终端,属于计算机技术领域。本发明通过将待排序文件的文件名转换为字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取代表数字的字符对应的数字,根据代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。由于当文件为以文件名中数字大小,来区分文件排列的先后顺序的文件时,能根据文件名中的数字,对文件进行排序。因此,对文件进行排序后能够方便后续根据文件名,对文件进行查找,从而使得查找文件的效率较高。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种文件排序方法、装置及终端。
背景技术
随着终端的存储空间越来越大,终端可以作为一种存储设备用来存储大量的文件。而由于终端上可存储的文件也越来越多,为了便于对文件进行查找,在显示文件管理界面时,需要对文件进行排序。目前的排序方式主要根据文件大小、文件名或文件生成时间等进行。例如,以按照文件名进行排序为例,在排序过程中,可以按照字典序排序算法,根据文件名的第一个字符,对文件进行排序。例如,以三个文件的文件名分别为“cup”、“cat”及“bus”为例。由于字典序排序是按照字母表的大小进行排序,且会优先考虑第一个字母,在第一个字母相同的情况下,才会考虑第二个字母,依此类推。由于在字母表中b在c之前,从而文件名为“bus”的文件会排在文件名为“cup”及文件名为“cat”的文件之前,而文件名“cat”由于第二个字母a在文件名“cup”中第二个字母u之前。因此,文件名为“cat”的文件会排在文件名为“cup”的文件之前,从而排序结果为“bus”、“cat”、“cup”。
发明内容
为克服相关技术中存在的问题,本公开提供了一种文件排序方法、装置及终端。
根据本公开实施例的第一方面,提供了一种文件排序方法,该方法包括:
将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
对于转换后的任两个字符串,逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符;
在比较过程中,如果确定所述第一字符串与所述第二字符串中包括代表数字的字符,且所述第一字符串与所述第二字符串中位于所述代表数字的字符之前的字符相同,获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字;
根据所述第一字符串与所述第二字符串中代表数字的字符对应的数字之间的大小关系,对所述第一字符串对应的文件与所述第二字符串对应的文件进行排序。
结合第一方面,在第一方面的第一种可能的实现方式中,所述逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符,包括:
当检测到所述任两个字符串中第一字符串与第二字符串中第一个代表数字的字符时,继续对所述第一代表数字的字符的后续字符进行检测,直到检测到字符不为代表数字的字符为止。
结合第一方面,在第一方面的第二种可能的实现方式中,所述获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字,包括:
确定所述第一字符串与所述第二字符串中检测到的代表数字的字符个数;
根据代表数字的字符个数,确定每个代表数字的字符对应的数位;
将所述每个代表数字的字符转化为对应的数字;
根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定所述第一字符串与所述第二字符串中代表数字的字符对应的数字。
结合第一方面,在第一方面的第三种可能的实现方式中,所述逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符之后,还包括:
在比较过程中,如果确定所述第一字符串与所述第二字符串中不包括代表数字的字符,通过语言排序算法,对所述第一字符串与所述第二字符串进行排序;
根据排序结果,对所述第一字符串与所述第二字符串对应的文件进行排序。
结合第一方面,在第一方面的第四种可能的实现方式中,所述将待排序文件的文件名转换为字符串之前,还包括:
接收按照文件名对文件进行排序的排序指令;
根据所述排序指令,将文件排序方式设置为按照文件名排序。
根据本公开实施例的第二方面,提供了一种文件排序装置,该装置包括:
转换模块,用于将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
比较模块,用于对于转换后的任两个字符串,逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符;
获取模块,用于在比较过程中,如果确定所述第一字符串与所述第二字符串中包括代表数字的字符,且所述第一字符串与所述第二字符串中位于所述代表数字的字符之前的字符相同,获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字;
第一排序模块,用于根据所述第一字符串与所述第二字符串中代表数字的字符对应的数字之间的大小关系,对所述第一字符串对应的文件与所述第二字符串对应的文件进行排序。
结合第二方面,在第二方面的第一种可能的实现方式中,所述比较模块,用于当检测到所述任两个字符串中第一字符串与第二字符串中第一个代表数字的字符时,继续对所述第一代表数字的字符的后续字符进行检测,直到检测到字符不为代表数字的字符为止。
结合第二方面,在第二方面的第二种可能的实现方式中,用于确定所述第一字符串与所述第二字符串中检测到的代表数字的字符个数;根据代表数字的字符个数,确定每个代表数字的字符对应的数位;将所述每个代表数字的字符转化为对应的数字;根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定所述第一字符串与所述第二字符串中代表数字的字符对应的数字。
结合第二方面,在第二方面的第三种可能的实现方式中,所述装置还包括:
第二排序模块,用于在比较过程中,如果确定所述第一字符串与所述第二字符串中不包括代表数字的字符,通过语言排序算法,对所述第一字符串与所述第二字符串进行排序;
第三排序模块,用于根据排序结果,对所述第一字符串与所述第二字符串对应的文件进行排序。
结合第二方面,在第二方面的第四种可能的实现方式中,所述装置还包括:
接收模块,用于接收按照文件名对文件进行排序的排序指令;
设置模块,用于根据所述排序指令,将文件排序方式设置为按照文件名排序。
根据本公开实施例的第三方面,提供了一种终端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
对于转换后的任两个字符串,逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符;
在比较过程中,如果确定所述第一字符串与所述第二字符串中包括代表数字的字符,且所述第一字符串与所述第二字符串中位于所述代表数字的字符之前的字符相同,获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字;
根据所述第一字符串与所述第二字符串中代表数字的字符对应的数字之间的大小关系,对所述第一字符串对应的文件与所述第二字符串对应的文件进行排序。
本公开实施例提供的技术方案带来的有益效果是:
通过将待排序文件的文件名转换为字符串,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。由于当根据文件名中数字大小,来对文件进行先后排序时,能根据文件名中的数字,对文件进行排序,从而拓展了文件排序方式,使得文件排序方式更加智能,提高在界面中对文件的查找效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种文件排序方法流程图。
图2是根据一示例性实施例示出的一种文件排序方法流程图。
图3是根据一示例性实施例示出的一种文件排序装置的结构示意图。
图4是根据一示例性实施例示出的一种文件排序装置的结构示意图。
图5是根据一示例性实施例示出的一种文件排序装置的结构示意图。
图6是根据一示例性实施例示出的一种终端的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种文件排序方法流程图,该文件排序方法应用于终端。如图1所示,该文件排序方法包括以下步骤。
在步骤101中,将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串。
在步骤102中,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符。
在步骤103中,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字。
在步骤104中,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。
本公开实施例提供的方法,通过将待排序文件的文件名转换为字符串,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。由于当需要根据文件名中数字大小,来对文件进行先后排序时,能根据文件名中的数字,对文件进行排序,从而拓展了文件排序方式,使得文件排序方式更加智能,提高在界面中对文件的查找效率。
作为一种可选实施例,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,包括:
当检测到任两个字符串中第一字符串与第二字符串中第一个代表数字的字符时,继续对第一代表数字的字符的后续字符进行检测,直到检测到字符不为代表数字的字符为止。
作为一种可选实施例,获取第一字符串与第二字符串中代表数字的字符对应的数字,包括:
确定第一字符串与第二字符串中检测到的代表数字的字符个数;
根据代表数字的字符个数,确定每个代表数字的字符对应的数位;
将每个代表数字的字符转化为对应的数字;
根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定第一字符串与第二字符串中代表数字的字符对应的数字。
作为一种可选实施例,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符之后,还包括:
在比较过程中,如果确定第一字符串与第二字符串中不包括代表数字的字符,通过语言排序算法,对第一字符串与第二字符串进行排序;
根据排序结果,对第一字符串与第二字符串对应的文件进行排序。
作为一种可选实施例,将待排序文件的文件名转换为字符串之前,还包括:
接收按照文件名对文件进行排序的排序指令;
根据排序指令,将文件排序方式设置为按照文件名排序。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是根据一示例性实施例示出的一种文件排序方法流程图,如图2所示,该文件排序方法应用于终端中,包括以下步骤。
在步骤201中,将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串。
由于本实施例提供的文件排序方法主要为根据文件名进行排序,而在对文件进行排序时,除了根据文件名进行排序之外,还可以根据文件大小或文件生成时间的内容对文件进行排序。因此,在执行本步骤201之前,还可以接收按照文件名对文件进行排序的排序指令,根据排序指令,将文件排序方式设置为按照文件名排序,本实施例对此不作具体限定。当然,按照上述方式,用户除了发送按照文件名对文件进行排序的排序指令,还可以预先将系统排列文件的方式设置为默认按照文件名排序,本实施例对此不作具体限定。
在将文件名转化为字符串时,可将通过相关函数获取文件名,并将获取到的文件名存储至预先设置的字符串变量中,本实施例对此不作具体限定。
在步骤202中,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符。
在上述步骤201中,将每个待排序文件的文件名转换为字符串时,由于待排序文件会有多个,从而能得到多个字符串。在对文件进行排序时,可根据每两个文件名,每次对两个文件进行排序,从而最终得到所有文件的最终排序结果。为了便于解释说明,本实施例以对两个文件排序为例,对两个文件的排序过程进行解释说明。基于上述原理,在本步骤中可从转换后的字符串中选取任两个字符串。
本实施例不对逐位比较任两个字符串中第一字符串与第二字符串中每一位字符的方式作具体限定,包括但不限于:当检测到任两个字符串中第一字符串与第二字符串中第一个代表数字的字符时,继续对第一代表数字的字符的后续字符进行检测,直到检测到字符不为代表数字的字符为止。
例如,以第一字符串为“abc123d”,第二字符串为“abc24d”为例。对第一字符串与第二字符串中每一位字符进行检测,并逐位比较任两个字符串中第一字符串与第二字符串中每一位字符。
当检测到第一字符串第一个代表数字的字符‘1’时,继续对第一字符串中字符‘1’的后续字符进行检测,直到检测到不为代表数字的字符‘d’为止。当检测到第二字符串第一个代表数字的字符‘2’时,继续对第一字符串中字符‘2’的后续字符进行检测,直到检测到不为代表数字的字符‘d’为止。
另外,在逐位比较第一字符串“abc123d”与第二字符串“abc24d”时,可确定第一字符串“abc123d”中位于第一个代表数字的字符‘1’之前字符,与第二字符串“abc24d”中位于第一个代表数字的字符‘2’之前字符相同,且均为“abc”。
其中,在检测字符串中单个字符是否为代表数字的字符时,可采用如下方式:将字符与数字0对应的字符及数字9对应的字符进行比较,当字符大于或等于数字0对应的字符,且小于或等于数字9对应的字符时,则确定字符为代表数字的字符。
例如,以字符串中单个字符用符号A表示为例。为了判断字符串中的字符是否为代表数字的字符,可按照下列公式(1)进行判断:
′0′≤A≤′9′ (1)
当字符串中的字符满足上述公式(1)时,则说明在字符串中的字符为代表数字的字符。
由于本实施例提供的排序方法主要针对于文件名包含数字的情形,而在逐位比较任两个字符串中第一字符串与第二字符串中每一位字符后,可能会存在第一字符串与第二字符串中均不包括代表数字的字符的情形。因此,针对上述情形,本实施例提供了一种文件排序方法,包括但不限于:通过语言排序算法,对第一字符串与第二字符串进行排序;根据排序结果,对第一字符串与第二字符串对应的文件进行排序。按照上述方式,每次对两个字符串进行排序,最终可以得到所有字符串的排序结果,从而按照字符串的排序结果,对文件进行排序。
在步骤203中,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,确定第一字符串与第二字符串中检测到的代表数字的字符个数。
由于当若干文件对应的文件名中部分内容相同时,则说明上述文件可能为同系列文件,从而才需要按照文件名对文件进行排序。例如,以文件为视频文件为例。视频文件的文件名通常为视频名称加上视频的集数,如生活大爆炸第1集、生活大爆炸第2集等。当逐位比较文件名对应的字符串时,可确定字符串中数字之前的字符均为“生活大爆炸第”,从而可对视频种类为生活大爆炸的视频文件进行排序。而若某个视频文件文件名为“生活大爆炸第2集”,另一个视频文件名为“Friends第3集”。由于在逐位比较文件名对应的字符串时,字符串中数字之前的字符分别为“生活大爆炸第”及“Friends第”,两者并不相同,从而可确定上述两个视频不是同种类的视频。因此,不需要按照文件名对文件进行排序。
基于上述原理,在通过上述步骤202的比较过程后,当满足第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同的条件后,继续执行本实施例提供的后续步骤。
本实施例不对确定第一字符串中检测到的代表数字的字符个数的方式作具体限定,包括但不限于:为第一字符串设置一个计数变量,计数变量的初始值为0;当检测到第一字符串中第一个代表数字的字符时,计数变量加1,继续对第一字符串中的字符进行检测,每当连续检测到一个代表数字的字符时,将计数变量加1,直到检测到字符不为代表数字的字符为止;将计数变量的值作为第一字符串中检测到的代表数字的字符个数。
例如,以第一字符串为“abc123d”为例。为第一字符串设置一个计数变量a,a的初始值为0。对第一字符串进行检测,当检测到字符‘1’时,a的值变为1,继续对第一字符串进行检测,检测到字符‘2’时,a的值变为2,检测到字符‘2’时,a的值变为3。由于第一字符串中字符‘2’后面的字符不为代表数字的字符,从而可确定第一字符串中检测到的代表数字的字符个数为3。
需要说明的是,在确定第二字符串中检测到的代表数字的字符个数时,可同样按照上述确定第一字符串中检测到的代表数字的字符个数的方式,本实施例对此不作具体限定。
另外,由于同系列文件对应的文件名通常会有若干层次,每一层次对应的数字在作为对文件进行排序的依据时,具有不同的优先级。其中,越靠前层次对应的数字,优先级越高。在对文件进行排序时,优先依据文件名中第一层次对应的数字来对文件进行排序,在第一层次对应的数字相同时,再依据第二层次对应的数字对文件进行排序,并依次类推。
以上述内容为基础,本步骤的过程还可以为:在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,且第一字符串与第二字符串中第一次检测到的代表数字的字符不同时,则确定第一字符串与第二字符串中第一次检测到的代表数字的字符个数。
在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,而第一字符串与第二字符串中第一次检测到的代表数字的字符相同时,则继续逐位比较第一字符串与第二字符串中后续的每一位字符。在后续比较过程中,如果第一字符串与第二字符串中位于代表数字的字符之前的字符相同,且第一字符串与第二字符串中第二次检测到的代表数字的字符不同时,则确定第一字符串与第二字符串中第二次检测到的代表数字的字符个数,依次类推。
其中,确定代表数字的字符个数的方法可参考上述过程,此处不再赘述。
例如,以视频文件为例。若第一字符串为“Friends第1季第1集”,第二字符串为“Friends第10季第1集”,按照上述比较过程,可确定第一字符串中第一次检测到的代表数字的字符为‘1’‘0’,而第二字符串中第一次检测到的代表数字的字符为‘1’,两者不相同。因此,可确定第一次字符串中第一次检测到的代表数字的字符个数为1,第二次字符串中第一次检测到的代表数字的字符个数为2。由于第一字符串及第二字符串对应着同系列不同季数的视频文件,从而后续排列文件时,按照视频对应季数的大小,来对视频文件进行排序。
若第一字符串为“Friends第1季第1集”,第二字符串为“Friends第1季第8集”,按照上述比较过程,可确定第一字符串中第一次检测到的代表数字的字符为‘1’,而第二字符串中第一次检测到的代表数字的字符为‘1’,两者相同。因此,可继续逐位比较第一字符串与第二字符串中后续的每一位字符。由于后续比较过程中,第一字符串与第二字符串中位于代表数字的字符之前的字符相同,且均为“第”。第一字符串中第二次检测到的代表数字的字符为‘1’,第二字符串中第二次检测到的代表数字的字符为‘8’,第一字符串与第二字符串中第二次检测到的代表数字的字符不同。因此,可确定第一次字符串中第二次检测到的代表数字的字符个数为1,第二次字符串中第一次检测到的代表数字的字符个数为1。由于第一字符串及第二字符串对应着同系列相同季数但不同集数的视频文件,从而后续排列文件时,按照视频对应集数的大小,来对视频文件进行排序。
在步骤204中,根据代表数字的字符个数,确定每个代表数字的字符对应的数位。
本实施例不对根据代表数字的字符个数,确定每个代表数字的字符对应的数位的方式作具体限定,包括但不限于:根据代表数字的字符个数,确定代表数字的字符所组成的数字的最高数位;根据每个代表数字的字符在字符串中所处的相对位置及最高数位,确定每个代表数字的字符对应的数位。
例如,以代表数字的字符个数为3,代表数字的字符按照从左到右的顺序分别为‘1’、‘2’、‘3’为例。由于代表数字的字符个数为3,即代表数字的字符所构成的数字为3位数。因此,可确定最高数位为百位。由于字符‘1’在字符串中处于最左边的位置,因此,可确定字符‘1’对应的数位为百位。由于字符‘2’与字符‘1’相邻,且位于字符‘1’的右边,因此,可确定字符‘2’对应的数位为十位。由于字符‘3’与字符‘2’相邻,且位于字符‘2’的右边,因此,可确定字符‘3’对应的数位为个位。
在步骤205中,将每个代表数字的字符转化为对应的数字。
由于计算机中,代表数字的字符与其它字符一般通过ASCII码(AmericanStandard Code for Information Interchange,美国信息交换标准代码)来表示,即每个字符都对应着一个数字,而代表数字的字符对应的ASCII码是连续的数字。例如,字符‘0’对应的ASCII码为0,字符‘1’对应的ASCII码为1,字符‘9’对应的ASCII码为9。因此,在将每个代表数字的字符转化为对应的数字,可将每个代表数字的字符直接与字符‘0’相减,在计算机中相当于将每个代表数字的字符对应的ASCII码与字符‘0’对应的ASCII码相减,从而将得到的结果作为转化后的数字。
例如,若代表数字的字符为字符‘1’,将字符‘1’与字符‘0’相减,在计算机中相当于字符‘1’对应的ASCII码1减去字符‘0’对应的ASCII码0,从而得到的结果1即为字符‘1’对应的数字。
在步骤206中,根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定第一字符串与第二字符串中代表数字的字符对应的数字。
本实施例不对根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定第一字符串中代表数字的字符对应的数字的方式作具体限定,包括但不限于:将每个代表数字的字符对应的数字与每个代表数字的字符对应的数位相乘;将相乘后得到的每个结果相加,将相加得到的结果作为第一字符串中代表数字的字符对应的数字。
例如,以上述步骤204中的例子为例,可确定第一字符串中代表数字的字符对应的数字为1×100+2×10+3=123。
需要说明的是,按照上述方式可同样确定第二字符串中代表数字的字符对应的数字,本实施例对此不作具体限定。
在步骤207中,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。
本实施例根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序的排序方式作具体限定,包括但不限于按照数字从大到小排列。当然,还可以按照从小到大排列。
例如,以按照数字从小到大排列为例。其中,第一字符串“abc123d”中代表数字的字符对应的数字为123,第二字符串“abc24d”中代表数字的字符对应的数字为24。因此,按照数字从小到大排列,可在文件列表中将文件名为“abc123d”的文件排在文件名为“abc24d”的文件的前面。
需要说明的是,上述步骤201至步骤207主要针对的是两个文件的进行排序的情况,在实际对多个文件进行排序时,可按照上述方法,依次对每两个文件进行排序,从而最终实现对所有文件进行排序。例如,以待排序文件为3个文件,且文件名分别为“a20”、“a10”及“a12”为例。若排序为按照数字从小到大排序,第一次排序对两个文件进行排序,排序结果“a10”、“a20”、“a12”。第二次排序对后两个文件进行排序,排序结果“a10”,“a12”,“a20”,即得到文件最终的排序结果。
另外,由于文件除了视频文件之外,还可以为程序安装包文件等。因此,文件名中的数字除了代表视频的集数之外,还可以代表程序安装包的版本号。当文件为程序安装包文件时,可按照上述方式,根据版本号,对文件进行排序。当然,本实施例提供的文件排序方法还可以用于其它的文件类型,本实施例对此不作具体限定。
需要说明的是,在按照上述过程对文件进行排序后,由于能够以文件名中数字大小,来对文件进行排序。因此,能够方便后续根据文件名,对文件进行查找,从而使得查找文件的效率较高。
本公开实施例提供的方法,通过将待排序文件的文件名转换为字符串,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。由于当根据文件名中数字大小,来对文件进行先后排序时,能根据文件名中的数字,对文件进行排序,从而拓展了文件排序方式,使得文件排序方式更加智能,提高在界面中对文件的查找效率。
图3是根据一示例性实施例示出的一种文件排序装置的结构示意图,该装置用于执行上述图1或图2所对应的实施例中任一实施例所提供的文件排序方法,该文件排序装置应用于终端。参照图3,该装置包括转换模块301、比较模块302、获取模块303及第一排序模块304。
该转换模块301被配置为将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
该比较模块302被配置为对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符;
该获取模块303被配置为在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字;
该第一排序模块304被配置为根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。
在一个实施例中,比较模块302,被配置为当检测到任两个字符串中第一字符串与第二字符串中第一个代表数字的字符时,继续对第一代表数字的字符的后续字符进行检测,直到检测到字符不为代表数字的字符为止。
在一个实施例中,获取模块303,被配置为确定第一字符串与第二字符串中检测到的代表数字的字符个数;根据代表数字的字符个数,确定每个代表数字的字符对应的数位;将每个代表数字的字符转化为对应的数字;根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定第一字符串与第二字符串中代表数字的字符对应的数字。
在一个实施例中,参见图4,该装置还包括第二排序模块305及第三排序模块306。
该第二排序模块305被配置为在比较过程中,如果确定第一字符串与第二字符串中不包括代表数字的字符,通过语言排序算法,对第一字符串与第二字符串进行排序;
第三排序模块306被配置为根据排序结果,对第一字符串与第二字符串对应的文件进行排序。
在一个实施例中,参见图5,该装置还包括接收模块307及设置模块308。
接收模块307被配置为接收按照文件名对文件进行排序的排序指令;
设置模块308被配置为根据排序指令,将文件排序方式设置为按照文件名排序。
本公开实施例提供的装置,通过将待排序文件的文件名转换为字符串,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。由于当根据文件名中数字大小,来对文件进行先后排序时,能根据文件名中的数字,对文件进行排序,从而拓展了文件排序方式,使得文件排序方式更加智能,提高在界面中对文件的查找效率。
图6是根据一示例性实施例示出的一种终端600的框图。例如,终端600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,终端600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制终端600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在终端600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件606为终端600的各种组件提供电力。电力组件606可以包括电源管理系统,一个或多个电源,及其他与为终端600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述终端600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当终端600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为终端600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如所述组件为终端600的显示器和小键盘,传感器组件614还可以检测终端600或终端600一个组件的位置改变,用户与终端600接触的存在或不存在,终端600方位或加速/减速和终端600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于终端600和其他设备之间有线或无线方式的通信。终端600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图1或图2所对应的实施例中任一实施例所提供的文件排序方法。
本公开实施例提供的终端,通过将待排序文件的文件名转换为字符串,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。由于当根据文件名中数字大小,来对文件进行先后排序时,能根据文件名中的数字,对文件进行排序,从而拓展了文件排序方式,使得文件排序方式更加智能,提高在界面中对文件的查找效率。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由终端600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行一种文件排序方法,该方法包括:
将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
对于转换后的任两个字符串,逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符;
在比较过程中,如果确定所述第一字符串与所述第二字符串中包括代表数字的字符,且所述第一字符串与所述第二字符串中位于所述代表数字的字符之前的字符相同,获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字;
根据所述第一字符串与所述第二字符串中代表数字的字符对应的数字之间的大小关系,对所述第一字符串对应的文件与所述第二字符串对应的文件进行排序。
本公开实施例提供的计算机可读存储介质,通过将待排序文件的文件名转换为字符串,对于转换后的任两个字符串,逐位比较任两个字符串中第一字符串与第二字符串中每一位字符,在比较过程中,如果确定第一字符串与第二字符串中包括代表数字的字符,且第一字符串与第二字符串中位于代表数字的字符之前的字符相同,获取第一字符串与第二字符串中代表数字的字符对应的数字,根据第一字符串与第二字符串中代表数字的字符对应的数字之间的大小关系,对第一字符串对应的文件与第二字符串对应的文件进行排序。由于当根据文件名中数字大小,来对文件进行先后排序时,能根据文件名中的数字,对文件进行排序,从而拓展了文件排序方式,使得文件排序方式更加智能,提高在界面中对文件的查找效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (12)
1.一种文件排序方法,其特征在于,所述方法包括:
将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
对于转换后的任两个字符串,逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符;
在逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符的过程中,如果确定所述第一字符串与所述第二字符串中包括代表数字的字符,且所述第一字符串与所述第二字符串中位于所述代表数字的字符之前的字符相同,且所述第一字符串与所述第二字符串中所述代表数字的字符不同,获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字;
根据所述第一字符串与所述第二字符串中代表数字的字符对应的数字之间的大小关系,对所述第一字符串对应的文件与所述第二字符串对应的文件进行排序;
所述将待排序文件的文件名转换为字符串,包括:
通过相关函数获取所述文件名;
将获取到的所述文件名存储至预先设置的字符串变量中。
2.根据权利要求1所述的方法,其特征在于,所述逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符,包括:
当检测到所述任两个字符串中第一字符串与第二字符串中第一个代表数字的字符时,继续对所述第一个代表数字的字符的后续字符进行检测,直到检测到字符不为代表数字的字符为止。
3.根据权利要求1所述的方法,其特征在于,所述获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字,包括:
确定所述第一字符串与所述第二字符串中检测到的代表数字的字符个数;
根据代表数字的字符个数,确定每个代表数字的字符对应的数位;
将所述每个代表数字的字符转化为对应的数字;
根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定所述第一字符串与所述第二字符串中代表数字的字符对应的数字。
4.根据权利要求1所述的方法,其特征在于,所述逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符之后,还包括:
在比较过程中,如果确定所述第一字符串与所述第二字符串中不包括代表数字的字符,通过语言排序算法,对所述第一字符串与所述第二字符串进行排序;
根据排序结果,对所述第一字符串与所述第二字符串对应的文件进行排序。
5.根据权利要求1所述的方法,其特征在于,所述将待排序文件的文件名转换为字符串之前,还包括:
接收按照文件名对文件进行排序的排序指令;
根据所述排序指令,将文件排序方式设置为按照文件名排序。
6.一种文件排序装置,其特征在于,所述装置包括:
转换模块,用于将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
比较模块,用于对于转换后的任两个字符串,逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符;
获取模块,用于在逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符的过程中,如果确定所述第一字符串与所述第二字符串中包括代表数字的字符,且所述第一字符串与所述第二字符串中位于所述代表数字的字符之前的字符相同,且所述第一字符串与所述第二字符串中所述代表数字的字符不同,获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字;
第一排序模块,用于根据所述第一字符串与所述第二字符串中代表数字的字符对应的数字之间的大小关系,对所述第一字符串对应的文件与所述第二字符串对应的文件进行排序;
所述转换模块还用于:
通过相关函数获取所述文件名;将获取到的所述文件名存储至预先设置的字符串变量中。
7.根据权利要求6所述的装置,其特征在于,所述比较模块,用于当检测到所述任两个字符串中第一字符串与第二字符串中第一个代表数字的字符时,继续对所述第一个代表数字的字符的后续字符进行检测,直到检测到字符不为代表数字的字符为止。
8.根据权利要求6所述的装置,其特征在于,所述获取模块,用于确定所述第一字符串与所述第二字符串中检测到的代表数字的字符个数;根据代表数字的字符个数,确定每个代表数字的字符对应的数位;将所述每个代表数字的字符转化为对应的数字;根据每个代表数字的字符对应的数字及每个代表数字的字符对应的数位,确定所述第一字符串与所述第二字符串中代表数字的字符对应的数字。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二排序模块,用于在比较过程中,如果确定所述第一字符串与所述第二字符串中不包括代表数字的字符,通过语言排序算法,对所述第一字符串与所述第二字符串进行排序;
第三排序模块,用于根据排序结果,对所述第一字符串与所述第二字符串对应的文件进行排序。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收按照文件名对文件进行排序的排序指令;
设置模块,用于根据所述排序指令,将文件排序方式设置为按照文件名排序。
11.一种终端,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
将待排序文件的文件名转换为字符串,每个文件名对应于一个字符串;
对于转换后的任两个字符串,逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符;
在逐位比较所述任两个字符串中第一字符串与第二字符串中每一位字符的过程中,如果确定所述第一字符串与所述第二字符串中包括代表数字的字符,且所述第一字符串与所述第二字符串中位于所述代表数字的字符之前的字符相同,且所述第一字符串与所述第二字符串中所述代表数字的字符不同,获取所述第一字符串与所述第二字符串中代表数字的字符对应的数字;
根据所述第一字符串与所述第二字符串中代表数字的字符对应的数字之间的大小关系,对所述第一字符串对应的文件与所述第二字符串对应的文件进行排序;
所述将待排序文件的文件名转换为字符串,包括:
通过相关函数获取所述文件名;
将获取到的所述文件名存储至预先设置的字符串变量中。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510007414.1A CN104615663B (zh) | 2015-01-07 | 2015-01-07 | 文件排序方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510007414.1A CN104615663B (zh) | 2015-01-07 | 2015-01-07 | 文件排序方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104615663A CN104615663A (zh) | 2015-05-13 |
CN104615663B true CN104615663B (zh) | 2019-04-26 |
Family
ID=53150106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510007414.1A Active CN104615663B (zh) | 2015-01-07 | 2015-01-07 | 文件排序方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104615663B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202423A (zh) * | 2016-07-12 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种文件排序方法和设备 |
CN107066303B (zh) * | 2017-05-04 | 2020-11-27 | 深圳市欧瑞博科技股份有限公司 | 固件比对方法和装置 |
CN107145588A (zh) * | 2017-05-11 | 2017-09-08 | 上海颐学网络科技有限公司 | 一种文件夹树形图自动创建方法和系统 |
CN110019657B (zh) * | 2017-07-28 | 2021-05-25 | 北京搜狗科技发展有限公司 | 处理方法、装置和机器可读介质 |
CN108133048B (zh) * | 2018-01-16 | 2020-09-25 | Oppo广东移动通信有限公司 | 文件排序方法、装置及移动终端 |
CN108763468B (zh) * | 2018-05-29 | 2021-06-22 | 周宇 | 字典排序处理方法、装置及电子学习设备 |
CN110929113A (zh) * | 2018-09-19 | 2020-03-27 | 珠海金山办公软件有限公司 | 一种对混合型字符串表格的排序方法、系统和终端 |
CN112364214A (zh) * | 2020-12-17 | 2021-02-12 | 深圳市芯天下技术有限公司 | 基于数值等级的字符串排序方法、装置、存储介质和终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033923A (zh) * | 2010-12-14 | 2011-04-27 | 百度时代网络技术(北京)有限公司 | 在线视频的搜索与展现方法及装置 |
CN102929874A (zh) * | 2011-08-08 | 2013-02-13 | 深圳市快播科技有限公司 | 检索数据的排序方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8274592B2 (en) * | 2009-12-22 | 2012-09-25 | Eastman Kodak Company | Variable rate browsing of an image collection |
-
2015
- 2015-01-07 CN CN201510007414.1A patent/CN104615663B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033923A (zh) * | 2010-12-14 | 2011-04-27 | 百度时代网络技术(北京)有限公司 | 在线视频的搜索与展现方法及装置 |
CN102929874A (zh) * | 2011-08-08 | 2013-02-13 | 深圳市快播科技有限公司 | 检索数据的排序方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104615663A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104615663B (zh) | 文件排序方法、装置及终端 | |
CN104753766B (zh) | 表情发送方法及装置 | |
CN105426152B (zh) | 弹幕的显示方法和装置 | |
CN104239566B (zh) | 视频搜索的方法及装置 | |
CN105404863B (zh) | 人物特征识别方法及系统 | |
CN104615769A (zh) | 图片分类方法及装置 | |
CN109189986B (zh) | 信息推荐方法、装置、电子设备和可读存储介质 | |
CN105677392A (zh) | 应用程序的推荐方法和装置 | |
CN110532345A (zh) | 一种未标注数据的处理方法、装置及存储介质 | |
CN104216971A (zh) | 应用程序的索引方法及装置 | |
CN105373580A (zh) | 主题显示方法及装置 | |
CN106096009A (zh) | 消息生成方法及装置 | |
CN108334623A (zh) | 歌曲的显示方法、装置和系统 | |
CN109213942A (zh) | 一种搜索结果展示方法及装置 | |
CN105100193A (zh) | 云名片推荐方法及装置 | |
CN109388699A (zh) | 输入方法、装置、设备及存储介质 | |
CN109634913A (zh) | 文档的存储方法、装置及电子设备 | |
CN105302335B (zh) | 词汇推荐方法和装置及计算机可读存储介质 | |
CN110490303A (zh) | 超网络构建方法、使用方法、装置及介质 | |
CN110019885A (zh) | 一种表情数据推荐方法及装置 | |
CN105551047A (zh) | 图片内容的检测方法和装置 | |
CN109214175A (zh) | 基于样本特征训练分类器的方法、装置及存储介质 | |
CN106339452B (zh) | 事件响应方法及装置 | |
CN105488074A (zh) | 照片聚类的方法及装置 | |
CN107729439A (zh) | 获取多媒体数据的方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |