CN112131340A - 字符串检测方法、装置及存储介质 - Google Patents

字符串检测方法、装置及存储介质 Download PDF

Info

Publication number
CN112131340A
CN112131340A CN201910555031.6A CN201910555031A CN112131340A CN 112131340 A CN112131340 A CN 112131340A CN 201910555031 A CN201910555031 A CN 201910555031A CN 112131340 A CN112131340 A CN 112131340A
Authority
CN
China
Prior art keywords
character string
file
files
identifications
language
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.)
Granted
Application number
CN201910555031.6A
Other languages
English (en)
Other versions
CN112131340B (zh
Inventor
乔辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Ezviz Software Co Ltd
Original Assignee
Hangzhou Ezviz Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Ezviz Software Co Ltd filed Critical Hangzhou Ezviz Software Co Ltd
Priority to CN201910555031.6A priority Critical patent/CN112131340B/zh
Publication of CN112131340A publication Critical patent/CN112131340A/zh
Application granted granted Critical
Publication of CN112131340B publication Critical patent/CN112131340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种字符串检测方法、装置及存储介质,属于信息处理技术领域。在本申请实施例中,获取参考语言文件,其中,该参考语言文件中包括多个字符串和多个字符串标识,多个字符串和多个字符串标识一一对应,且每个字符串标识用于唯一标识对应的字符串。从多个字符串标识中获取对应的字符串未包含在多个程序文件中的字符串标识,并根据获取的字符串标识,确定多个字符串的无用字符串。也即,本申请实施例通过参考语言文件中的字符串标识即可以自动检测其他程序文件是否还在使用该字符串标识所对应的字符串,进而确定该字符串是否为无用字符串,相较于相关技术中人工查找,省时省力且准确性更高。

Description

字符串检测方法、装置及存储介质
技术领域
本申请涉及信息处理技术领域,特别涉及一种字符串检测方法、装置及计算机可读存储介质。
背景技术
当前,终端中通常安装有多种应用程序,以满足用户需求。由于终端的用户可能遍布世界各地,因此,终端中的应用程序可以包括多个地区对应的多个语言文件,其中,每个语言文件中包含有以相应地区所使用的语种表示的多个字符串。这样,终端的应用程序即可以在不同地区根据不同的语言文件显示不同的语种的字符串。然而,随着应用程序的更新,语言文件中的某些字符串可能会被遗弃而不再使用。在这种情况下,则需要对语言文件中这些无用字符串进行检测,以便后续对这些无用字符串进行清理。
相关技术中,通常由技术人员逐个对语言文件中的字符串进行复制粘贴,终端根据技术人员粘贴的字符串在该应用程序包括的所有文件进行全局搜索,以此来检测该字符串是否为无用字符串。然而,由于语言文件中的字符串的数量较多,因此,通过这种方法来检测无用字符串需要消耗极大的人力成本和时间成本。
发明内容
本申请实施例提供了一种字符串检测方法、装置及存储介质,可以用于解决相关技术中检测无用字符串耗时耗力的问题。所述技术方案如下:
一方面,提供了一种字符串检测方法,所述方法包括:
从参考语言文件中获取多个字符串标识,所述参考语言文件为第一应用程序的多个语言文件中的任一语言文件,所述多个语言文件中的每个语言文件均包括所述多个字符串标识和多个字符串,所述多个字符串标识和所述多个字符串一一对应,且不同语言文件中语义相同的字符串对应的字符串标识相同;
从所述多个字符串标识中获取无用字符串标识,所述无用字符串标识为所述多个字符串标识中未包含在多个程序文件中的字符串标识,所述多个程序文件为所述第一应用程序中除所述多个语言文件之外的文件;
根据所述无用字符串标识,确定所述多个语言文件中的无用字符串。
在一种可能的实现方式中,所述多个字符串标识中的每个字符串标识与对应的字符串以键值对的形式存储;
所述从参考语言文件中获取多个字符串标识,包括:
读取所述参考语言文件中的多个键值对;
对所述多个键值对进行分割,得到所述多个字符串标识。
在一种可能的实现方式中,所述从所述多个字符串标识中获取无用字符串标识,包括:
根据第一字符串标识,生成第一指令,所述第一字符串标识为所述多个字符串标识中的任一字符串标识;
在所述多个程序文件中的每个程序文件中查找所述第一指令;
如果在所述多个程序文件中的每个程序文件中均未查找到所述第一指令,则将所述第一字符串标识确定为无用字符串标识。
在一种可能的实现方式中,所述将所述第一字符串标识确定为无用字符串标识之后,还包括:
获取第一路径信息;
根据所述第一路径信息将所述第一字符串标识写入第一文件中,所述第一文件是指所述第一路径信息所指示的路径下存储的文件。
在一种可能的实现方式中,所述从所述多个字符串标识中获取无用字符串标识之前,还包括:
获取所述第一应用程序的根目录路径以及参考文件信息;
根据所述第一应用程序的根目录路径和所述参考文件信息,确定所述多个程序文件。
在一种可能的实现方式中,所述参考文件信息是指用于指示所述多个程序文件的文件类型的第一文件信息,所述多个程序文件的文件类型与所述多个语言文件的文件类型不同;
或者,所述参考文件信息是指所述多个程序文件的文件目录信息,所述多个程序文件的文件目录信息与所述多个语言文件的文件目录信息不同。
另一方面,提供了一种字符串检测装置,所述装置包括:
第一获取模块,用于从参考语言文件中获取多个字符串标识,所述参考语言文件为第一应用程序的多个语言文件中的任一语言文件,所述多个语言文件中的每个语言文件均包括所述多个字符串标识和多个字符串,所述多个字符串标识和所述多个字符串一一对应,且不同语言文件中语义相同的字符串对应的字符串标识相同;
第二获取模块,用于从所述多个字符串标识中获取无用字符串标识,所述无用字符串标识为所述多个字符串标识中未包含在多个程序文件中的字符串标识,所述多个程序文件为所述第一应用程序中除所述多个语言文件之外的文件;
确定模块,用于根据所述无用字符串标识,确定所述多个语言文件中的无用字符串。
在一种可能的实现方式中,所述多个字符串标识中的每个字符串标识与对应的字符串以键值对的形式存储;
所述从参考语言文件中获取多个字符串标识,包括:
读取所述参考语言文件中的多个键值对;
对所述多个键值对进行分割,得到所述多个字符串标识。
在一种可能的实现方式中,所述第二获取模块包括:
生成子模块,用于根据第一字符串标识,生成第一指令,所述第一字符串标识为所述多个字符串标识中的任一字符串标识;
查找子模块,用于在所述多个程序文件中的每个程序文件中查找所述第一指令;
确定子模块,用于如果在所述多个程序文件中的每个程序文件中均未查找到所述第一指令,则将所述第一字符串标识确定为无用字符串标识。
在一种可能的实现方式中,所述第二获取模块还包括:
获取子模块,用于获取第一路径信息;
写入子模块,用于根据所述第一路径信息将所述第一字符串标识写入第一文件中,所述第一文件是指所述第一路径信息所指示的路径下存储的文件。
在一种可能的实现方式中,所述装置还用于:
获取所述第一应用程序的根目录路径以及参考文件信息;
根据所述第一应用程序的根目录路径和所述参考文件信息,确定所述多个程序文件。
在一种可能的实现方式中,所述参考文件信息是指用于指示所述多个程序文件的文件类型的第一文件信息,所述多个程序文件的文件类型与所述多个语言文件的文件类型不同;
或者,所述参考文件信息是指所述多个程序文件的文件目录信息,所述多个程序文件的文件目录信息与所述多个语言文件的文件目录信息不同。
另一方面,提供了一种字符串检测装置,所述装置包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存放计算机程序;
所述处理器用于执行所述存储器上所存放的程序,以实现前述的字符串检测方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述提供的字符串检测方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,获取参考语言文件,其中,该参考语言文件中包括多个字符串和多个字符串标识,多个字符串和多个字符串标识一一对应,且每个字符串标识用于唯一标识对应的字符串。从多个字符串标识中获取对应的字符串未包含在多个程序文件中的字符串标识,并根据获取的字符串标识,确定多个字符串的无用字符串。也即,本申请实施例通过参考语言文件中的字符串标识即可以自动检测其他程序文件是否还在使用该字符串标识所对应的字符串,进而确定该字符串是否为无用字符串,相较于相关技术中人工查找,省时省力且准确性更高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的字符串检测方法流程图;
图2是本申请实施例提供的字符串检测装置结构示意图;
图3是本申请实施例提供的第二获取模块的结构示意图;
图4是本申请实施例提供的用于进行字符串检测的终端设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的应用场景予以介绍。
当前,随着世界互联互通,终端的用户往往遍布世界各地。在这种情况下,为了满足不同地区的用户的需求,终端中的应用通常会通过提供多个语言文件来支持多种语言。其中,每个语言文件对应一个地区,该语言文件中包括该地区语言的多个字符串。各个语言文件包括的字符串的数量是相同的,其中,对于任一语言文件中的任一个字符串,其他语言文件中均包含有与该字符串具有相同语义但是语种不同的字符串。例如,假设一个应用支持30个不同地区的语言。则该应用将会提供30个语言文件。其中,假设中国对应的语言文件中包含有“相机”这个字符串,则在美国对应的语言文件中将会包含有“相机”这一字符串对应的英文字符串“camera”,同理,在法国对应的语言文件中将会包含有“相机”对应的法语字符串。当终端中的应用在显示应用界面时,用户可以选择所在地区,该应用可以根据用户选择的地区,利用对应的语言文件中的字符串来显示应用界面中的文字信息。
然而,应用开发者经常会对终端中的应用进行更新,在应用更新时,若在该应用的显示内容中存在新增的字符串,则直接在多个语言文件中增加字符串。而对于更新后该应用不会再使用到的字符串,将仍会存在于语言文件中。基于此,终端可以通过本申请实施例提供的字符串检测方法来检测多个语言文件中的无用字符串,进而清理这些无用字符串以减少无用字符串对资源的占用。
接下来对本申请实施例提供的字符串检测方法进行介绍。
图1是本申请实施例提供的一种字符串检测方法的流程图。参见图1,该方法包括:
步骤101:从参考语言文件中获取多个字符串标识,该参考语言文件为第一应用程序的多个语言文件中的任一语言文件,多个语言文件中的每个语言文件均包括多个字符串和该多个字符串标识,该多个字符串和该多个字符串标识一一对应,且不同语言文件中语义相同的字符串对应的字符串标识相同。
其中,第一应用程序是指待检测无用字符串的应用程序。
在本申请实施例中,终端可以随机获取多个语言文件中的任一语言文件作为参考语言文件。或者,该终端可以显示参数输入窗口,用户可以在该参数输入窗口中输入多个语言文件中要作为参考语言文件的语言文件的文件路径。终端在接收到该文件路径之后,可以获取该文件路径下的语言文件作为参考语言文件。
可选地,当用户在参数输入窗口中输入文件路径之后,该终端还可以检测用户输入的文件路径是否为无效参数。例如,该终端可以检测用户输入的文件路径是否符合路径格式,如果不符合,则可以确定用户输入的文件路径为无效参数。或者,该终端可以检测用户输入的文件路径下是否存在文件,如果不存在,则也可以确定用户输入的文件路径为无效参数。若该终端确定用户输入的文件路径为无效参数,则该终端可以显示参数无效的提示信息,以提示用户重新输入文件路径。
需要说明的是,如前述应用场景中介绍可知,多个语言文件中的每个语言文件中均包括多个字符串,每个语言文件中包括的字符串的数量是相同的,且不同语言文件中包括用于表示同一语义的不同语种的字符串。除此之外,每个语言文件中的多个字符串中的每个字符串均对应一个字符串标识,且各个语言文件中用于表示同一语义的字符串对应的字符串标识是相同的。例如,假设中国对应的语言文件中“相机”这一字符串,其对应的字符串标识为01,则其他所有语言文件中用于表示相机这一语义的字符串对应的字符串标识将均为01。
另外,每个语言文件中的每个字符串和对应的字符串标识可以以key-value(键值对)的形式进行存储。其中,字符串标识为key,对应的字符串为value。例如,中国对应的语言文件中“相机”这一字符串和其对应的字符串标识“01”即可以以key-value的形式进行存储。其中,key为01,value为相机。其中,终端的操作系统不同,存储键值对的格式可能也不同的,例如,当终端的操作系统为IOS系统时,存储键值对的格式可以为key:value。当终端的操作系统为安卓操作系统时,则存储键值对的格式可以为<key><value>。
当语言文件中的字符串和对应的字符串标识以key-value的形式进行存储时,该终端在获取到参考语言文件之后,可以读取该参考语言文件中的所有键值对。对多个键值对进行分割,得到多个字符串标识。
其中,基于前述描述可知,不同操作系统的终端存储键值对的格式可能不同,因此,在读取到多个键值对之后,该终端可以根据自身操作系统存储键值对时的存储格式,来对多个键值对中的每个键值对中的key和value进行分割和识别,从而得到每个键值对中的key,也即字符串标识。
在得到多个字符串标识之后,该终端可以将多个字符串标识按照一定顺序依次存储在标识列表中。需要说明的是,如果多个字符串标识本身是连续的数值,例如,多个字符串标识分别为1、2、3、4、5···连续的数值,则可以按照从小到大的顺序将该多个字符串标识依次写入标识列表中,在该标识列表中,多个字符串标识也是按照从小到大的顺序排列的。
步骤102:从多个字符串标识中获取无用字符串标识,无用字符串标识为多个字符串标识中未包含在多个程序文件中的字符串标识。
在通过步骤101从参考语言文件中获取到多个字符串标识之后,该终端可以从多个字符串标识中获取未包含在多个程序文件中的字符串标识。该未包含在多个程序文件中的字符串标识即为无用字符串标识。其中,多个程序文件是指第一应用程序中除多个语言文件之外的其他文件。
需要说明的是,在从多个字符串标识中获取无用字符串标识之前,该终端可以首先获取多个程序文件。其中,该终端可以显示参数输入窗口,用户可以在该参数输入窗口输入第一应用程序的根目录路径以及参考文件信息,之后,该终端可以根据接收到的第一应用程序的根目录路径以及参考文件信息,确定多个程序文件。
可选地,当用户在参数输入窗口输入根目录路径以及参考文件信息之后,该终端可以参考前述介绍的方法来检测用户输入的参数是否有效。本申请实施例在此不再赘述。
其中,参考文件信息可以是指用于指示多个程序文件的文件类型的第一文件信息,多个程序文件的文件类型与多个语言文件的文件类型不同。在这种情况下,该终端可以根据接收到的第一应用程序的根目录路径,查找该根目录路径下的全部文件,之后,该终端可以从该根目录路径下的全部文件中筛选符合输入的文件类型的文件。将筛选出的文件确定为多个程序文件。
示例性地,假设程序文件的文件后缀与语言文件的文件后缀不同,其中,程序文件的文件后缀为.m或者是.java,在这种情况下,用户即可以输入程序文件的文件后缀,该终端可以根据该文件后缀从第一应用程序的根目录路径下的全部文件中筛选文件后缀为.m或者是.java的文件,并将筛选出来的文件确定为多个程序文件。
可选地,在一种可能的实现方式中,参考文件信息也可以是多个程序文件的文件目录信息,该多个程序文件的文件目录信息与多个语言文件的文件目录信息不同。也即,在有些可能的情况下,多个程序文件可能处于根目录下的某个文件目录下,而多个语言文件处于根目录下的另一个文件目录下,在这种情况下,用户可以输入多个程序文件对应的文件目录的目录信息,该终端可以将接收到的文件目录信息所指示的文件目录下的所有文件确定为程序文件。
需要说明的是,在确定多个程序文件之后,该终端可以获取多个程序文件中每个程序文件对应的文件路径信息,并将获取的多个文件路径信息写入到文件路径列表中。其中,在该文件路径列表中,多个文件路径信息按照一定顺序依次排列。
在确定多个程序文件之后,对于该多个字符串标识中的任一字符串标识,为了方便描述,将其称为第一字符串标识,该终端可以根据第一字符串标识,生成第一指令;在多个程序文件中的每个程序文件中查找第一指令,如果在多个程序文件中的每个程序文件中均未查找到第一指令,则将第一字符串标识确定为无用字符串标识。
需要说明的是,该终端可以将第一字符串标识和指定方法名进行拼接,从而生成第一指令。其中,该指定方法名是预先定义的对各个应用各个文件通用的获取字符串的方法名,且该指定方法名中包括第一参数,该第一参数是指要获取的字符串对应的字符串标识。
示例性地,对于操作系统为IOS的终端,该指定方法名可以为NSLocalizedString(“key”,nil),其中,key即为第一参数;nil为第二参数,用于表示备注信息。假设第一字符串标识为01,则该终端将该第一字符串标识和指定方法名进行拼接之后,生成的第一指令为NSLocalizedString(“01”,nil)。
需要说明的是,由于不同语言文件中用于表示相同语义的字符串对应的字符串标识相同,且指定方法名为预定义的通用的获取语言文件中的字符串的方法名,因此,对于程序文件而言,当该程序文件需要获取并使用语言文件中的第一字符串标识所对应的字符串时,该程序文件中必然会包含有包括该第一字符串标识和指定方法名的第一指令。基于此,在本申请实施例中,该终端在生成第一指令之后,可以依次读取多个程序文件中每个程序文件的文件内容,并在读取的每个程序文件的文件内容中查找第一指令。如果在某个程序文件的文件内容中查找到该第一指令,则说明该文件内容中包含有第一字符串标识,也说明该程序文件还在使用该第一字符串标识对应的字符串,此时,该终端可以停止查找,并确定该第一字符串标识为有用字符串标识。如果在该多个程序文件中的每个程序文件的文件内容中均未查找到该第一指令,则说明每个程序文件的文件内容中均不包含有第一字符串标识,也说明该多个程序文件均未使用该第一字符串标识对应的字符串。此时,即可以将该第一字符串标识确定为未包含在多个程序文件中的无用字符串标识。
对于多个字符串标识中的每个字符串标识,该终端均可以参照上述方法来查找相应字符串标识是否包含在多个程序文件中,从而得到多个字符串标识中未包含在多个程序文件中的无用字符串标识。
需要说明的是,基于前述描述可知,该终端可以将从参考语言文件中获取到的多个字符串标识存储在标识列表中,将获取到的多个程序文件的文件路径信息存储在文件路径列表中。在这种情况下,该终端可以按照标识列表中多个字符串标识的顺序,依次获取每个字符串标识,并参考前述的方式依次生成每个字符串标识对应的指令,将多个指令按照多个字符串标识的顺序依次存储在指令列表中。之后,该终端可以从该指令列表中获取第一个指令,并从文件路径列表中获取第一个文件路径信息。根据第一个文件路径信息获取第一个程序文件,并参考前述介绍的方法从第一个程序文件中查找第一个指令,若在第一个程序文件中查找到第一个指令,则该终端可以从该指令列表中获取第二个指令,并继续在第一个程序文件中查找第二个指令,以此类推。
当然,如果在第一个程序文件中未查找到第一个指令,则该终端可以从文件路径列表中获取第二个文件路径信息,并根据第二文件路径信息获取第二个程序文件,在第二个程序文件中查找第一个指令,以此类推,如果直到根据最后一个文件路径信息获取到最后一个程序文件,且在最后一个程序文件中仍然未能查找到第一个指令,则说明第一个指令不包含在多个程序文件中。此时,该终端可以根据该第一个指令,从标识列表中获取第一个字符串标识,并将该第一个字符串标识确定为无用字符串标识。在将第一个字符串标识确定为无用字符串标识之后,该终端可以从指令列表中获取第二个指令,并按照前述方法继续判断第二个指令是否包含在多个程序文件中,直到判断出指令列表中最后一个指令是否包含在多个程序文件中为止。
需要说明的是,每当确定得到一个未包含在多个程序文件中的无用字符串标识之后,该终端可以将该确定出的无用字符串标识写入指定的第一文件。
示例性地,该终端可以在确定出第一个无用字符串标识之前,显示参数输入窗口。用户可以在参数输入窗口中输入第一路径信息,该第一路径信息下存储有第一文件。该终端在接收到第一路径信息之后,可以存储第一路径信息。这样,当后续每确定一个无用字符串之后,该终端可以将确定的无用字符串写入该第一路径信息下的第一文件中,并存储该第一文件。其中,该第一文件可以为excel等类型的文件。示例性地,当该第一文件为excel文件时,该终端可以通过Python的第三方库openpyxl将无用字符串写入到第一文件中。
步骤103:根据无用字符串标识,确定多个语言文件中的无用字符串。
在获取到无用字符串标识之后,该终端即可以通过该无用字符串标识从多个语言文件中获取对应的无用字符串。并且,该终端还可以参考前述的实现方式将获取到的无用字符串写入到第二文件中,以实现无用字符串的快速导出。
在本申请实施例中,终端可以从参考语言文件中获取多个字符串标识,然后从多个字符串标识中获取未包含在多个程序文件中的无用字符串标识,根据获取的无用字符串标识从多个语言文件中获取对应的无用字符串。也即,本申请实施例通过参考语言文件中的字符串标识即可以自动检测其他程序文件是否还在使用该字符串标识所对应的字符串,进而确定该字符串是否为无用字符串,相较于相关技术中人工查找,省时省力且准确性更高。另外,在本申请实施例中,该终端可以将无用字符串标识导出到第一文件中,进而根据该无用字符串标识快速导出对应的字符串,清晰明了,为清理无用字符串提供了有效保障。
接下来对本申请实施例提供的字符串检测装置进行介绍。
参见图2,本申请实施例提供了一种字符串检测装置200,该装置200包括:
第一获取模块201,用于从参考语言文件中获取多个字符串标识,参考语言文件为第一应用程序的多个语言文件中的任一语言文件,多个语言文件中的每个语言文件均包括多个字符串标识和多个字符串,多个字符串标识和多个字符串一一对应,且不同语言文件中语义相同的字符串对应的字符串标识相同;
第二获取模块202,用于从多个字符串标识中获取无用字符串标识,无用字符串标识为多个字符串标识中未包含在多个程序文件中的字符串标识,多个程序文件为第一应用程序中除多个语言文件之外的文件;
确定模块203,用于根据无用字符串标识,确定多个语言文件中的无用字符串。
可选地,多个字符串标识中的每个字符串标识与对应的字符串以键值对的形式存储;
第一获取模块201具体用于:
读取参考语言文件中的多个键值对;
对多个键值对进行分割,得到多个字符串标识。
可选地,参见图3,第二获取模202包括:
生成子模块2021,根据第一字符串标识,生成第一指令,第一字符串标识为多个字符串标识中的任一字符串标识;
查找子模块2022,在多个程序文件中的每个程序文件中查找第一指令;
确定子模块2023,如果在多个程序文件中的每个程序文件中均未查找到第一指令,则将第一字符串标识确定为无用字符串标识。
可选地,第二获取模块202还包括:
获取子模块,用于获取第一路径信息;
写入子模块,用于根据第一路径信息将第一字符串标识写入第一文件中,第一文件是指第一路径信息所指示的路径下存储的文件。
可选地,该装置还用于:
获取第一应用程序的根目录路径以及参考文件信息;
根据第一应用程序的根目录路径和参考文件信息,确定多个程序文件。
可选地,参考文件信息是指用于指示多个程序文件的文件类型的第一文件信息,多个程序文件的文件类型与多个语言文件的文件类型不同;
或者,参考文件信息是指多个程序文件的文件目录信息,多个程序文件的文件目录信息与多个语言文件的文件目录信息不同。
综上所述,本申请实施例可以从参考语言文件中获取多个字符串标识,然后从多个字符串标识中获取未包含在多个程序文件中的无用字符串标识,根据获取的无用字符串标识从多个语言文件中获取对应的无用字符串。也即,本申请实施例通过参考语言文件中的字符串标识即可以自动检测其他程序文件是否还在使用该字符串标识所对应的字符串,进而确定该字符串是否为无用字符串,相较于相关技术中人工查找,省时省力且准确性更高。另外,在本申请实施例中,该终端可以将无用字符串标识导出到第一文件中,进而根据该无用字符串标识快速导出对应的字符串,清晰明了,为清理无用字符串提供了有效保障。
需要说明的是:上述实施例提供的字符串检测装置在检测字符串时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的字符串检测装置与字符串检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4示出了本申请一个示例性实施例提供的用于进行字符串检测的终端设备400的结构框图。该终端设备400可以是:智能手机、平板电脑、笔记本电脑或台式电脑。终端设备400还可能被称为用户设备、便携式调整神经网络模型的设备、膝上型调整神经网络模型的设备、台式调整神经网络模型的设备等其他名称。
通常,终端设备400包括有:处理器401和存储器402。
处理器401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请方法实施例提供的字符串检测方法。
在一些实施例中,终端设备400还可选包括有:外围设备接口403和至少一个外围设备。处理器401、存储器402和外围设备接口403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口403相连。具体地,外围设备包括:射频电路404、触摸显示屏405、摄像头406、音频电路407、定位组件408和电源409中至少一种。
外围设备接口403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器401和存储器402。在一些实施例中,处理器401、存储器402和外围设备接口403被集成在同一芯片或电路板上;在一些其他实施例中,处理器401、存储器402和外围设备接口403中任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路404可以通过至少一种无线通信协议来与其它调整神经网络模型的设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏405是触摸显示屏时,显示屏405还具有采集在显示屏405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器401进行处理。此时,显示屏405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏405可以为一个,设置终端设备400的前面板;在另一些实施例中,显示屏405可以为至少两个,分别设置在终端设备400的不同表面或呈折叠设计;在再一些实施例中,显示屏405可以是柔性显示屏,设置在终端设备400的弯曲表面上或折叠面上。甚至,显示屏405还可以设置成非矩形的不规则图形,也即异形屏。显示屏405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件406用于采集图像或视频。可选地,摄像头组件406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端设备的前面板,后置摄像头设置在终端设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器401进行处理,或者输入至射频电路404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器401或射频电路404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路407还可以包括耳机插孔。
定位组件408用于定位终端设备400的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件408可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源409用于为终端设备400中各个组件进行供电。电源409可以是交流电、直流电、一次性电池或可充电电池。当电源409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端设备400还包括有一个或多个传感器410。该一个或多个传感器410包括但不限于:加速度传感器411、陀螺仪传感器412、压力传感器413、指纹传感器414、光学传感器415以及接近传感器416。
加速度传感器411可以检测以终端设备400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器411可以用于检测重力加速度在三个坐标轴上的分量。处理器401可以根据加速度传感器411采集的重力加速度信号,控制触摸显示屏405以横向视图或纵向视图进行用户界面的显示。加速度传感器411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器412可以检测终端设备400的机体方向及转动角度,陀螺仪传感器412可以与加速度传感器411协同采集用户对终端设备400的3D动作。处理器401根据陀螺仪传感器412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器413可以设置在终端设备400的侧边框和/或触摸显示屏405的下层。当压力传感器413设置在终端设备400的侧边框时,可以检测用户对终端设备400的握持信号,由处理器401根据压力传感器413采集的握持信号进行左右手识别或快捷操作。当压力传感器413设置在触摸显示屏405的下层时,由处理器401根据用户对触摸显示屏405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中至少一种。
指纹传感器414用于采集用户的指纹,由处理器401根据指纹传感器414采集到的指纹识别用户的身份,或者,由指纹传感器414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器414可以被设置终端设备400的正面、背面或侧面。当终端设备400上设置有物理按键或厂商Logo时,指纹传感器414可以与物理按键或厂商Logo集成在一起。
光学传感器415用于采集环境光强度。在一个实施例中,处理器401可以根据光学传感器415采集的环境光强度,控制触摸显示屏405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏405的显示亮度;当环境光强度较低时,调低触摸显示屏405的显示亮度。在另一个实施例中,处理器401还可以根据光学传感器415采集的环境光强度,动态调整摄像头组件406的拍摄参数。
接近传感器416,也称距离传感器,通常设置在终端设备400的前面板。接近传感器416用于采集用户与终端设备400的正面之间的距离。在一个实施例中,当接近传感器416检测到用户与终端设备400的正面之间的距离逐渐变小时,由处理器401控制触摸显示屏405从亮屏状态切换为息屏状态;当接近传感器416检测到用户与终端设备400的正面之间的距离逐渐变大时,由处理器401控制触摸显示屏405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图4中示出的结构并不构成对终端设备400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由上述终端设备中的处理器执行以完成上述实施例中的字符串检测方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种字符串检测方法,其特征在于,所述方法包括:
从参考语言文件中获取多个字符串标识,所述参考语言文件为第一应用程序的多个语言文件中的任一语言文件,所述多个语言文件中的每个语言文件均包括所述多个字符串标识和多个字符串,所述多个字符串标识和所述多个字符串一一对应,且不同语言文件中语义相同的字符串对应的字符串标识相同;
从所述多个字符串标识中获取无用字符串标识,所述无用字符串标识为所述多个字符串标识中未包含在多个程序文件中的字符串标识,所述多个程序文件为所述第一应用程序中除所述多个语言文件之外的文件;
根据所述无用字符串标识,确定所述多个语言文件中的无用字符串。
2.根据权利要求1所述的方法,其特征在于,所述多个字符串标识中的每个字符串标识与对应的字符串以键值对的形式存储;
所述从参考语言文件中获取多个字符串标识,包括:
读取所述参考语言文件中的多个键值对;
对所述多个键值对进行分割,得到所述多个字符串标识。
3.根据权利要求1所述的方法,其特征在于,所述从所述多个字符串标识中获取无用字符串标识,包括:
根据第一字符串标识,生成第一指令,所述第一字符串标识为所述多个字符串标识中的任一字符串标识;
在所述多个程序文件中的每个程序文件中查找所述第一指令;
如果在所述多个程序文件中的每个程序文件中均未查找到所述第一指令,则将所述第一字符串标识确定为无用字符串标识。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一字符串标识确定为无用字符串标识之后,还包括:
获取第一路径信息;
根据所述第一路径信息将所述第一字符串标识写入第一文件中,所述第一文件是指所述第一路径信息所指示的路径下存储的文件。
5.根据权利要求1-4任一所述的方法,其特征在于,所述从所述多个字符串标识中获取无用字符串标识之前,还包括:
获取所述第一应用程序的根目录路径以及参考文件信息;
根据所述第一应用程序的根目录路径和所述参考文件信息,确定所述多个程序文件。
6.根据权利要求5所述的方法,其特征在于,所述参考文件信息是指用于指示所述多个程序文件的文件类型的第一文件信息,所述多个程序文件的文件类型与所述多个语言文件的文件类型不同;
或者,所述参考文件信息是指所述多个程序文件的文件目录信息,所述多个程序文件的文件目录信息与所述多个语言文件的文件目录信息不同。
7.一种字符串检测装置,其特征在于,所述装置包括:
第一获取模块,用于从参考语言文件中获取多个字符串标识,所述参考语言文件为第一应用程序的多个语言文件中的任一语言文件,所述多个语言文件中的每个语言文件均包括所述多个字符串标识和多个字符串,所述多个字符串标识和所述多个字符串一一对应,且不同语言文件中语义相同的字符串对应的字符串标识相同;
第二获取模块,用于从所述多个字符串标识中获取无用字符串标识,所述无用字符串标识为所述多个字符串标识中未包含在多个程序文件中的字符串标识,所述多个程序文件为所述第一应用程序中除所述多个语言文件之外的文件;
确定模块,用于根据所述无用字符串标识,确定所述多个语言文件中的无用字符串。
8.根据权利要求7所述的装置,其特征在于,所述多个字符串标识中的每个字符串标识与对应的字符串以键值对的形式存储;
所述第一获取模块具体用于:
读取所述参考语言文件中的多个键值对;
对所述多个键值对进行分割,得到所述多个字符串标识。
9.根据权利要求7所述的装置,其特征在于,所述第二获取模块包括:
生成子模块,用于根据第一字符串标识,生成第一指令,所述第一字符串标识为所述多个字符串标识中的任一字符串标识;
查找子模块,用于在所述多个程序文件中的每个程序文件中查找所述第一指令;
确定子模块,用于如果在所述多个程序文件中的每个程序文件中均未查找到所述第一指令,则将所述第一字符串标识确定为无用字符串标识。
10.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述方法的步骤。
CN201910555031.6A 2019-06-25 2019-06-25 字符串检测方法、装置及存储介质 Active CN112131340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910555031.6A CN112131340B (zh) 2019-06-25 2019-06-25 字符串检测方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910555031.6A CN112131340B (zh) 2019-06-25 2019-06-25 字符串检测方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN112131340A true CN112131340A (zh) 2020-12-25
CN112131340B CN112131340B (zh) 2024-02-20

Family

ID=73849478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910555031.6A Active CN112131340B (zh) 2019-06-25 2019-06-25 字符串检测方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN112131340B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080044016A1 (en) * 2006-08-04 2008-02-21 Henzinger Monika H Detecting duplicate and near-duplicate files
CN102945244A (zh) * 2012-09-24 2013-02-27 南京大学 基于句号特征字串的中文网页重复文档检测和过滤方法
US20140023267A1 (en) * 2011-03-10 2014-01-23 Omron Corporation Character string detection device, image processing device, character string detection method, control program and storage medium
CN105279078A (zh) * 2014-06-24 2016-01-27 腾讯科技(深圳)有限公司 安全漏洞检测方法和装置
CN105793864A (zh) * 2013-12-27 2016-07-20 迈克菲股份有限公司 检测恶意多媒体文件的系统和方法
CN106599151A (zh) * 2016-12-07 2017-04-26 Tcl集团股份有限公司 一种Android工程无用资源并行清理的方法及系统
CN108280197A (zh) * 2018-01-29 2018-07-13 中国科学院信息工程研究所 一种识别同源二进制文件的方法及系统
CN108763582A (zh) * 2018-06-11 2018-11-06 腾讯科技(深圳)有限公司 文件搜索方法、装置、终端及存储介质
CN109284145A (zh) * 2018-08-28 2019-01-29 北京城市网邻信息技术有限公司 多语言配置文件的生成和展示方法及装置、设备和介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080044016A1 (en) * 2006-08-04 2008-02-21 Henzinger Monika H Detecting duplicate and near-duplicate files
US20140023267A1 (en) * 2011-03-10 2014-01-23 Omron Corporation Character string detection device, image processing device, character string detection method, control program and storage medium
CN102945244A (zh) * 2012-09-24 2013-02-27 南京大学 基于句号特征字串的中文网页重复文档检测和过滤方法
CN105793864A (zh) * 2013-12-27 2016-07-20 迈克菲股份有限公司 检测恶意多媒体文件的系统和方法
CN105279078A (zh) * 2014-06-24 2016-01-27 腾讯科技(深圳)有限公司 安全漏洞检测方法和装置
CN106599151A (zh) * 2016-12-07 2017-04-26 Tcl集团股份有限公司 一种Android工程无用资源并行清理的方法及系统
CN108280197A (zh) * 2018-01-29 2018-07-13 中国科学院信息工程研究所 一种识别同源二进制文件的方法及系统
CN108763582A (zh) * 2018-06-11 2018-11-06 腾讯科技(深圳)有限公司 文件搜索方法、装置、终端及存储介质
CN109284145A (zh) * 2018-08-28 2019-01-29 北京城市网邻信息技术有限公司 多语言配置文件的生成和展示方法及装置、设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沙海峰;高飞;胡小华;: "基于C++的VCT2.0文件格式检测程序的设计与实现", 测绘, no. 05 *

Also Published As

Publication number Publication date
CN112131340B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
CN110308956B (zh) 一种应用界面显示方法、装置及移动终端
CN108132790B (zh) 检测无用代码的方法、装置及计算机存储介质
CN110839128B (zh) 拍照行为检测方法、装置及存储介质
CN110058935B (zh) 日志级别调整方法、装置及系统、可读存储介质
CN113127181A (zh) 内存管理方法、装置及存储介质
CN111880712A (zh) 页面显示方法、装置、电子设备及存储介质
CN111159604A (zh) 图片资源加载方法及装置
CN111400002B (zh) 应用进程与处理器核绑定方法及终端
CN112749362A (zh) 控件创建方法、装置、设备及存储介质
CN109783176B (zh) 切换页面的方法和装置
CN107943484B (zh) 执行业务功能的方法和装置
CN110677713A (zh) 视频图像处理方法及装置、存储介质
CN111813322A (zh) 存储池的创建方法、装置、设备及存储介质
CN111897465B (zh) 弹窗显示方法、装置、设备及存储介质
CN111666076B (zh) 图层添加方法、装置、终端及存储介质
CN113469360B (zh) 推理方法及装置
CN111797017A (zh) 存储日志的方法、装置、测试设备及存储介质
CN111580892B (zh) 一种业务组件调用的方法、装置、终端和存储介质
CN113268234A (zh) 页面生成方法、装置、终端和存储介质
CN111294320B (zh) 数据转换的方法和装置
CN113408989A (zh) 汽车数据的比对方法、装置及计算机存储介质
CN112131340B (zh) 字符串检测方法、装置及存储介质
CN112990421A (zh) 优化深度学习网络的运行过程的方法、装置及存储介质
CN113010175A (zh) 匿名函数的信息获取方法、装置、设备及可读存储介质
CN111984738A (zh) 数据关联方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant