字符串替换方法和装置.pdf

上传人:a**** 文档编号:6105307 上传时间:2019-04-12 格式:PDF 页数:18 大小:1.23MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510661371.9

申请日:

2015.10.12

公开号:

CN106569986A

公开日:

2017.04.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/22申请日:20151012|||公开

IPC分类号:

G06F17/22; G06F17/30

主分类号:

G06F17/22

申请人:

北京国双科技有限公司

发明人:

相利; 王昌坤

地址:

100086 北京市海淀区双榆树小区知春路76号翠宫饭店8层A间

优先权:

专利代理机构:

北京康信知识产权代理有限责任公司 11240

代理人:

韩建伟;赵冬梅

PDF下载: PDF下载
内容摘要

本申请公开了一种字符串替换方法和装置。其中,该方法包括:依次读取出第一字符串中待替换的第一目标字符,其中,第一目标字符的数量为多个;依次读取出第二字符串中的第二目标字符,其中,第二目标字符为用于替换第一目标字符的字符,并且第二目标字符的数量为多个,第二字符串为第二目标字符组成的字符串;以及按照读取第一目标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符。本申请解决了现有技术中无法针对性进行字符串替换的技术问题。

权利要求书

1.一种字符串替换方法,其特征在于,包括:
依次读取出第一字符串中待替换的第一目标字符,其中,所述第一目标字符
的数量为多个;
依次读取出第二字符串中的第二目标字符,其中,所述第二目标字符为用于
替换所述第一目标字符的字符,并且第二目标字符的数量为多个,所述第二字符
串为所述第二目标字符组成的字符串;以及
按照读取所述第一目标字符和读取所述第二目标字符的顺序,依次利用所述
第二目标字符替换所述第一目标字符。
2.根据权利要求1所述的方法,其特征在于,依次读取出第一字符串中待替换的第
一目标字符,依次读取出第二字符串中的第二目标字符,按照读取所述第一目标
字符和读取所述第二目标字符的顺序,依次利用所述第二目标字符替换所述第一
目标字符包括:
遍历所述第一字符串;
每遍历到一个所述第一目标字符,从所述第二字符串中读取一个所述第二目
标字符,其中,当前读取到的所述第二目标字符在所述第二字符串中的位置与当
前已遍历到的所述第一目标字符的第一数量对应;以及
利用当前读取到的所述第二目标字符替换当前遍历到的所述第一目标字符。
3.根据权利要求2所述的方法,其特征在于,在利用当前读取到的所述第二目标字
符替换当前遍历到的所述第一目标字符之后,所述方法还包括:
确定目标字符串为下一次被遍历的所述第一字符串,其中,将当前遍历的所
述第一字符串中当前遍历到的所述第一目标字符替换为当前读取到的所述第二目
标字符后,得到所述目标字符串。
4.根据权利要求3所述的方法,其特征在于,在每遍历到一个所述第一目标字符,
从所述第二字符串中读取一个所述第二目标字符之前,所述方法还包括:
比较所述第一数量与所述第二字符串中所述第二目标字符的第二数量的大小,
其中,所述第二数量为所述第二字符串中所述第二目标字符的总数量,
其中,在比较出所述第一数量小于或等于所述第二数量的情况下,每遍历到
一个所述第一目标字符,从所述第二字符串中读取一个所述第二目标字符,或在
比较出所述第一数量大于所述第二数量的情况下,停止遍历所述第一字符串,并
确定所述目标字符串为最终的所述第一字符串。
5.根据权利要求1所述的方法,其特征在于,在依次读取出第二字符串中的第二目
标字符之后,所述方法还包括:
比较第二数量与第三数量的大小,其中,所述第二数量为所述第二字符串中
所述第二目标字符的总数量,所述第三数量为所述第一字符串中所述第一目标字
符的总数量,
按照读取所述第一目标字符和读取所述第二目标字符的顺序,依次利用所述
第二目标字符替换所述第一目标字符包括:
在比较出所述第二数量大于或等于所述第三数量的情况下,按照读取所述第
一目标字符和读取所述第二目标字符的顺序,依次利用所述第二目标字符替换所
述第一目标字符,直至所述第一目标字符均被替换为所述第二目标字符;或
在比较出所述第二数量小于或等于所述第三数量的情况下,按照读取所述第
一目标字符和读取所述第二目标字符的顺序,依次利用所述第二目标字符替换所
述第一目标字符,直至所述第一字符串中前所述第二数量个所述第一目标字符均
被替换为所述第二目标字符。
6.一种字符串替换装置,其特征在于,包括:
第一读取单元,用于依次读取出第一字符串中待替换的第一目标字符,其中,
所述第一目标字符的数量为多个;
第二读取单元,用于依次读取出第二字符串中的第二目标字符,其中,所述
第二目标字符为用于替换所述第一目标字符的字符,并且第二目标字符的数量为
多个,所述第二字符串为所述第二目标字符组成的字符串;以及
替换单元,用于按照读取所述第一目标字符和读取所述第二目标字符的顺序,
依次利用所述第二目标字符替换所述第一目标字符。
7.根据权利要求6所述的装置,其特征在于,
所述第一读取单元包括:
遍历子单元,用于遍历所述第一字符串,
所述第二读取单元包括:
读取子单元,用于在所述遍历子单元每遍历到一个所述第一目标字符的情况
下,从所述第二字符串中读取一个所述第二目标字符,其中,当前读取到的所述
第二目标字符在所述第二字符串中的位置与当前已遍历到的所述第一目标字符的
第一数量对应,
所述替换单元包括:
第一替换子单元,用于利用当前时刻读取到的所述第二目标字符替换当前遍
历到的所述第一目标字符。
8.根据权利要求7所述的装置,其特征在于,所述替换单元还包括:
确定子单元,用于在利用所述当前读取到的所述第二目标字符替换当前遍历
到的所述第一目标字符之后,确定目标字符串为下一次被遍历的所述第一字符串,
其中,将当前遍历的所述第一字符串中当前遍历到的所述第一目标字符替换为当
前读取到的所述第二目标字符后,得到所述目标字符串。
9.根据权利要求8所述的装置,其特征在于,所述第二读取单元还包括:
比较子单元,用于在每遍历到一个所述第一目标字符,从所述第二字符串中
读取一个所述第二目标字符之前,比较所述第一数量与所述第二字符串中所述第
二目标字符的第二数量的大小,其中,所述第二数量为所述第二字符串中所述第
二目标字符的总数量,
其中,在比较出所述第一数量小于或等于所述第二数量的情况下,每遍历到
一个所述第一目标字符,从所述第二字符串中读取一个所述第二目标字符,或在
比较出所述第一数量大于所述第二数量的情况下,停止遍历所述第一字符串,并
确定所述目标字符串为最终的所述第一字符串。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
比较单元,用于在依次读取出第二字符串中的第二目标字符之后,比较第二
数量与第三数量的大小,其中,所述第二数量为所述第二字符串中所述第二目标
字符的总数量,所述第三数量为所述第一字符串中所述第一目标字符的总数量,
所述替换单元包括:
第二替换子单元,用于在比较出所述第二数量大于或等于所述第三数量的情
况下,按照读取所述第一目标字符和读取所述第二目标字符的顺序,依次利用所
述第二目标字符替换所述第一目标字符,直至所述第一目标字符均被替换为所述
第二目标字符;或
第三替换子单元,用于在比较出所述第二数量小于或等于所述第三数量的情
况下,按照读取所述第一目标字符和读取所述第二目标字符的顺序,依次利用所
述第二目标字符替换所述第一目标字符,直至所述第一字符串中前所述第二数量
个所述第一目标字符均被替换为所述第二目标字符。

说明书

字符串替换方法和装置

技术领域

本申请涉及数据处理领域,具体而言,涉及一种字符串替换方法和装置。

背景技术

关于字符串处理方面,如果牵涉到字符串的替换,一般可以通过查找替换的方式
进行,利用新的目标字符替换掉需要被替换掉的原字符。但是此种方式只能将原字符
替换统一替换为相同的目标字符,比如,将字符串“a@b@c@d@”中的“@”字符替换为
“e”字符,得到替换后的字符串“aebecede”。

而实际应用中,有一种字符串的处理需求,需要将原始字符串中的某个字符分别
替换为不同的目标字符。目前,针对字符串数量极少的情况,尚可通过人为手工更改
来实现,但是字符串实际处理过程中,所针对的字符串数量是非常庞大的,人为的手
工更改方式显然是不现实的。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种字符串替换方法和装置,以至少解决现有技术中无法针
对性进行字符串替换的技术问题。

根据本申请实施例的一个方面,提供了一种字符串替换方法,包括:依次读取出
第一字符串中待替换的第一目标字符,其中,所述第一目标字符的数量为多个;依次
读取出第二字符串中的第二目标字符,其中,所述第二目标字符为用于替换所述第一
目标字符的字符,并且第二目标字符的数量为多个,所述第二字符串为所述第二目标
字符组成的字符串;以及按照读取所述第一目标字符和读取所述第二目标字符的顺序,
依次利用所述第二目标字符替换所述第一目标字符。

进一步地,依次读取出第一字符串中待替换的第一目标字符,依次读取出第二字
符串中的第二目标字符,按照读取所述第一目标字符和读取所述第二目标字符的顺序,
依次利用所述第二目标字符替换所述第一目标字符包括:遍历所述第一字符串;每遍
历到一个所述第一目标字符,从所述第二字符串中读取一个所述第二目标字符,其中,
当前读取到的所述第二目标字符在所述第二字符串中的位置与当前已遍历到的所述第
一目标字符的第一数量对应;以及利用当前读取到的所述第二目标字符替换当前遍历
到的所述第一目标字符。

进一步地,在利用当前读取到的所述第二目标字符替换当前遍历到的所述第一目
标字符之后,所述方法还包括:确定目标字符串为下一次被遍历的所述第一字符串,
其中,将当前遍历的所述第一字符串中当前遍历到的所述第一目标字符替换为当前读
取到的所述第二目标字符后,得到所述目标字符串。

进一步地,在每遍历到一个所述第一目标字符,从所述第二字符串中读取一个所
述第二目标字符之前,所述方法还包括:比较所述第一数量与所述第二字符串中所述
第二目标字符的第二数量的大小,其中,所述第二数量为所述第二字符串中所述第二
目标字符的总数量,其中,在比较出所述第一数量小于或等于所述第二数量的情况下,
每遍历到一个所述第一目标字符,从所述第二字符串中读取一个所述第二目标字符,
或在比较出所述第一数量大于所述第二数量的情况下,停止遍历所述第一字符串,并
确定所述目标字符串为最终的所述第一字符串。

进一步地,在依次读取出第二字符串中的第二目标字符之后,所述方法还包括:
比较第二数量与第三数量的大小,其中,所述第二数量为所述第二字符串中所述第二
目标字符的总数量,所述第三数量为所述第一字符串中所述第一目标字符的总数量,
按照读取所述第一目标字符和读取所述第二目标字符的顺序,依次利用所述第二目标
字符替换所述第一目标字符包括:在比较出所述第二数量大于或等于所述第三数量的
情况下,按照读取所述第一目标字符和读取所述第二目标字符的顺序,依次利用所述
第二目标字符替换所述第一目标字符,直至所述第一目标字符均被替换为所述第二目
标字符;或在比较出所述第二数量小于或等于所述第三数量的情况下,按照读取所述
第一目标字符和读取所述第二目标字符的顺序,依次利用所述第二目标字符替换所述
第一目标字符,直至所述第一字符串中前所述第二数量个所述第一目标字符均被替换
为所述第二目标字符。

根据本申请实施例的另一方面,提供了一种字符串替换装置,包括:第一读取单
元,用于依次读取出第一字符串中待替换的第一目标字符,其中,所述第一目标字符
的数量为多个;第二读取单元,用于依次读取出第二字符串中的第二目标字符,其中,
所述第二目标字符为用于替换所述第一目标字符的字符,并且第二目标字符的数量为
多个,所述第二字符串为所述第二目标字符组成的字符串;以及替换单元,用于按照
读取所述第一目标字符和读取所述第二目标字符的顺序,依次利用所述第二目标字符
替换所述第一目标字符。

进一步地,所述第一读取单元包括:遍历子单元,用于遍历所述第一字符串,所
述第二读取单元包括:读取子单元,用于在所述遍历子单元每遍历到一个所述第一目
标字符的情况下,从所述第二字符串中读取一个所述第二目标字符,其中,当前读取
到的所述第二目标字符在所述第二字符串中的位置与当前已遍历到的所述第一目标字
符的第一数量对应,所述替换单元包括:第一替换子单元,用于利用当前时刻读取到
的所述第二目标字符替换当前遍历到的所述第一目标字符。

进一步地,所述替换单元还包括:确定子单元,用于在利用所述当前读取到的所
述第二目标字符替换当前遍历到的所述第一目标字符之后,确定目标字符串为下一次
被遍历的所述第一字符串,其中,将当前遍历的所述第一字符串中当前遍历到的所述
第一目标字符替换为当前读取到的所述第二目标字符后,得到所述目标字符串。

进一步地,所述第二读取单元还包括:比较子单元,用于在每遍历到一个所述第
一目标字符,从所述第二字符串中读取一个所述第二目标字符之前,比较所述第一数
量与所述第二字符串中所述第二目标字符的第二数量的大小,其中,所述第二数量为
所述第二字符串中所述第二目标字符的总数量,其中,在比较出所述第一数量小于或
等于所述第二数量的情况下,每遍历到一个所述第一目标字符,从所述第二字符串中
读取一个所述第二目标字符,或在比较出所述第一数量大于所述第二数量的情况下,
停止遍历所述第一字符串,并确定所述目标字符串为最终的所述第一字符串。

进一步地,所述装置还包括:比较单元,用于在依次读取出第二字符串中的第二
目标字符之后,比较第二数量与第三数量的大小,其中,所述第二数量为所述第二字
符串中所述第二目标字符的总数量,所述第三数量为所述第一字符串中所述第一目标
字符的总数量,所述替换单元包括:第二替换子单元,用于在比较出所述第二数量大
于或等于所述第三数量的情况下,按照读取所述第一目标字符和读取所述第二目标字
符的顺序,依次利用所述第二目标字符替换所述第一目标字符,直至所述第一目标字
符均被替换为所述第二目标字符;或第三替换子单元,用于在比较出所述第二数量小
于或等于所述第三数量的情况下,按照读取所述第一目标字符和读取所述第二目标字
符的顺序,依次利用所述第二目标字符替换所述第一目标字符,直至所述第一字符串
中前所述第二数量个所述第一目标字符均被替换为所述第二目标字符。

在本申请实施例中,采用依次读取出第一字符串中待替换的第一目标字符,其中,
第一目标字符的数量为多个,依次读取出第二字符串中的第二目标字符,其中,第二
目标字符为用于替换第一目标字符的字符,并且第二目标字符的数量为多个,第二字
符串为第二目标字符组成的字符串,及按照读取第一目标字符和读取第二目标字符的
顺序,依次利用第二目标字符替换第一目标字符。通过依次把待替换的字符串中需要
替换的字符读取出来,把用来替换的字符串中的字符按照先后顺序读取出来,按照顺
序使用用来替换的字符串中的字符替换待替换的字符串中待替换的字符,实现了对字
符串自动顺序替换的技术效果,进而解决了现有技术中无法针对性进行字符串替换的
技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申
请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图
中:

图1是根据本申请实施例的字符串替换方法的流程图;

图2是根据本申请实施例的字符串替换方法进行字符串替换的示意图;以及

图3是根据本申请实施例的字符串替换装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的
附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例
仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领
域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于
本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这
样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在
这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的
任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方
法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚
地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先对本申请实施例所涉及的技术术语作如下解释:

字符串:字符串或串(String)是由数字、字母、下划线组成的一串字符,它是编
程语言中表示文本的数据类型。

字符串处理:在日常的开发过程中,由于业务上很多字符串并不是开发需要,所
以需要把这些字符串处理成开发所需要的字符串。通常以串的整体作为处理对象,常
见的处理方法如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个
子串以及删除一个子串等。

遍历:是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。
访问结点所做的操作依赖于具体的应用问题。

根据本申请实施例,提供了一种字符串替换方法的实施例,需要说明的是,在附
图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,
虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行
所示出或描述的步骤。

图1是根据本申请实施例的一种字符串替换方法,如图1所示,该方法包括如下
步骤:

步骤S102,依次读取出第一字符串中待替换的第一目标字符,其中,第一目标字
符的数量为多个。即,待替换的字符串中有若干个需要替换的字符,把这些需要替换
的字符按照它们在字符串中的先后顺序读取出来。

第一字符串中的多个第一目标字符相互之间可以相同(即可以为同一字符),也可
以互不相同。

步骤S104,依次读取出第二字符串中的第二目标字符,其中,第二目标字符为用
于替换第一目标字符的字符,并且第二目标字符的数量为多个,第二字符串为第二目
标字符组成的字符串。即,把用来替换的字符串中的字符按照先后顺序读取出来。

步骤S106,按照读取第一目标字符和读取第二目标字符的顺序,依次利用第二目
标字符替换第一目标字符。即,按照顺序,使用用来替换的字符串中的字符替换待替
换的字符串中的字符。

例如,有两串字符串,分别是字符串“A@B_C&D#”和字符串“abcd”,待替换的字
符是字符“@”、字符“_”、字符“&”、字符“#”,想用字符“a”替换字符“@”,用字
符“b”替换字符“_”,用字符“c”替换字符“&”,用字符“d”替换字符“#”。那么,
字符串“A@B_C&D#”即为第一字符串,字符“@”、字符“_”、字符“&”、字符“#”即
为第一目标字符,第一目标字符的数量为4个。字符串“abcd”为第二字符串,字符
“a”、字符“b”、字符“c”、字符“d”为第二目标字符,第二目标字符的数量为4
个。读取第一目标字符的顺序依次为字符“@”、字符“_”、字符“&”、字符“#”,读
取第二目标字符的顺序依次为字符“a”、字符“b”、字符“c”、字符“d”。依照读取
第一目标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符,
得到新的字符串“AaBbCcDd”。

再例如,在做sql解析的时候有一种语句类似:Insert into
table_name(col1,col1,col2,col3)values(?,?,?)。这是一条插入语句,“?”代表要
插入的值,此问号表示在这里进行站位操作,比如真正想要插入的只是“a”、“b”和
“c”,那么就是用“abc”替换上面的“???”,这样最终的语句就变为:
table_name(col1,col1,col2,col3)values(a,b,c)。这样的语句就可以进行数据库的
操作。通过上述实施例,依次把待替换的字符串中需要替换的字符读取出来,把用来
替换的字符串中的字符按照先后顺序读取出来,按照顺序使用用来替换的字符串中的
字符替换待替换的字符串中待替换的字符,解决了现有技术中无法针对性进行字符串
替换的技术问题,达到了针对性进行字符串替换的技术效果。

可选地,在本申请实施例中,可以按照读取出一个第一目标字符,利用一个第二
目标字符进行替换的方式进行字符串替换,即,依次读取出第一字符串中待替换的第
一目标字符,依次读取出第二字符串中的第二目标字符,按照读取第一目标字符和读
取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符包括:遍历第一字
符串;每遍历到一个第一目标字符,从第二字符串中读取一个第二目标字符,其中,
当前读取到的第二目标字符在第二字符串中的位置与当前已遍历到的第一目标字符的
第一数量对应,在本申请实施例中,当前已遍历到的第一目标字符的第一数量是几,
对应所读取的第二目标字符就位于第二字符串的第几位上;以及利用当前读取到的第
二目标字符替换当前遍历到的第一目标字符。即,按照顺序读取待替换的字符串中的
待替换的字符,对于每一个待替换的字符,从用来替换的字符串中读取一个字符,用
这个字符去替换待替换的字符串中的待替换的字符,其中,用来替换的字符在用来替
换的字符串中的位置应该与已遍历到的待替换字符的数量是对应的。其中,字符在字
符串中的位置指的是按照从前往后的顺序,该字符是该字符所在的字符串的第几个字
符。

例如,第一字符串为字符串“A@B_C&D#”,第二字符串为字符串“abcd”。遍历第
一字符串“A@B_C&D#”,读取字符“A”,字符“A”不是第一目标字符,继续遍历,读
取字符“@”,字符“@”是第一目标字符,从第二字符串“abcd”中读取一个第二目标
字符,由于截止至当前时刻遍历到的第一目标字符的的数量为1,故读取的第二目标
字符在第二字符串中的位置为第1位,由于字符“a”在第二字符串“abcd”中的位置
为第1位,故读取的第二目标字符为“a”。利用第二目标字符“a”替换当前时刻遍历
到的第一目标字符“@”,得到字符串“AaB_C&D#”。

可选地,在利用当前读取到的第二目标字符替换当前遍历到的第一目标字符之后,
本申请实施例所提供的字符串替换方法还包括:确定目标字符串为下一次被遍历的第
一字符串,其中,将当前遍历的第一字符串中当前遍历到的第一目标字符替换为当前
读取到的第二目标字符后,得到目标字符串。即,当待替换字符串的某个字符被替换
之后,得到一个新的字符串。当继续遍历待替换字符串时,将会遍历这个新的字符串。

例如,第一字符串为字符串“A@B_C&D#”,第二字符串为字符串“abcd”。利用第
二目标字符“a”替换当前时刻遍历到的第一目标字符“@”,得到字符串“AaB_C&D#”。
字符串“AaB_C&D#”即为目标字符串。即,字符串“AaB_C&D#”为下一时刻被遍历的
第一字符串。

可选地,在每遍历到一个第一目标字符,从第二字符串中读取一个第二目标字符
之前,方法还包括:比较第一数量与第二字符串中第二目标字符的第二数量的大小,
其中,第二数量为第二字符串中第二目标字符的总数量,其中,在比较出第一数量小
于或等于第二数量的情况下,每遍历到一个第一目标字符,从第二字符串中读取一个
第二目标字符,或在比较出第一数量大于第二数量的情况下,停止遍历第一字符串,
并确定目标字符串为最终的第一字符串。即,当每次遍历到一个待替换字符串中的字
符时,都要把已遍历过的待替换字符的数量与用来替换的字符串中字符的数量进行比
较,如果已遍历过的待替换字符的数量小于或者等于用来替换的字符串中字符的数量,
则从用来替换的字符串中读取当前字符,用读取到的字符去替换待替换字符串中的当
前待替换字符,如果已遍历过的待替换字符的数量大于用来替换的字符串中字符的数
量,则停止遍历用来替换的字符串,当前的待替换字符串即为最终得到的字符串。

例如,第一字符串为字符串“A@B_C&”,第二字符串为字符串“abc”。对第一字符
串进行遍历,当遍历到字符“@”时,第一数量为遍历过的第一目标字符的数量,为1。
第二数量为第二字符串“abc”中第二目标字符的数量,由于第二目标字符为字符“a”、
字符“b”、字符“c”,故第二数量为3。由于第一数量1小于第二数量3,故在第二字
符串读取一个第二目标字符,即读取到字符“a”。使用字符“a”替换字符“@”,得到
字符串“AaB_C&”。对字符串“AaB_C&”进行遍历,读取到字符“_”,此时,第一数量
为2,第二数量为3,第一数量小于第二数量,故在第二字符串读取一个第二目标字符,
即读取到字符“b”。使用字符“b”替换字符“_”,得到字符串“AaBbC&”。对字符串
“AaBbC&”进行遍历,读取到字符“&”,此时,第一数量为3,第二数量为3,第一数
量等于第二数量,故在第二字符串读取一个第二目标字符,即读取到字符“c”。使用
字符“c”替换字符“&”,得到字符串“AaBbCc”。

再例如,第一字符串为字符串“A@B_C&D#E%”,第二字符串为字符串“abc”。对第
一字符串进行遍历,当遍历到字符“@”时,第一数量为遍历过的第一目标字符的数量,
为1。第二数量为第二字符串“abc”中第二目标字符的数量,由于第二目标字符为字
符“a”、字符“b”、字符“c”,故第二数量为3。由于第一数量1小于第二数量3,故
在第二字符串读取一个第二目标字符,即读取到字符“a”。使用字符“a”替换字符“@”,
得到字符串“AaB_C&D#E%”。对字符串“AaB_C&D#E%”进行遍历,读取到字符“_”,
此时,第一数量为2,第一数量2小于第二数量3,故在第二字符串读取一个第二目标
字符,即读取到字符“b”。使用字符“b”替换字符“_”,得到字符串“AaBbC&D#E%”。
对字符串“AaBbC&D#E%”进行遍历,读取到字符“&”,此时,第一数量为3,第一数
量等于第二数量,故在第二字符串读取一个第二目标字符,即读取到字符“c”。使用
字符“c”替换字符“&”,得到字符串“AaBbCcD#E%”。对字符串进行遍历,读取到字
符“#”,此时,第一数量为4,第一数量大于第二数量,停止遍历第一字符串,并确
定字符串“AaBbCcD#E%”为最终的第一字符串,即字符串“AaBbCcD#E%”即为所有替
换均完成后的字符串。

可选地,在依次读取出第二字符串中的第二目标字符之后,本申请实施例所提供
的字符串替换方法还包括:比较第二数量与第三数量的大小,其中,第二数量为第二
字符串中第二目标字符的总数量,第三数量为第一字符串中第一目标字符的总数量。
在本申请实施例中,还可以先将第一字符串中的第一目标字符全部读取出来,然后,
利用第二目标字符依次进行替换的方式进行字符串替换,即,按照读取第一目标字符
和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符包括:在比较
出第二数量大于或等于第三数量的情况下,按照读取第一目标字符和读取第二目标字
符的顺序,依次利用第二目标字符替换第一目标字符,直至第一目标字符均被替换为
第二目标字符;或在比较出第二数量小于或等于第三数量的情况下,按照读取第一目
标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符,直至
第一字符串中前第二数量个第一目标字符均被替换为第二目标字符。即,按照先后顺
序依次读取出用来替换的字符串中的字符之后,把用来替换的字符串中所有字符的数
量与待替换字符串中待替换字符的数量进行比较。如果用来替换的字符串中所有字符
的数量大于待替换字符串中待替换字符的数量,则按照读取的顺序,依次使用用来替
换的字符串中的字符替换待替换字符串中待替换的字符,直至待替换字符串中待替换
的字符均被替换为用来替换的字符串中的字符。如果用来替换的字符串中所有字符的
数量小于或等于待替换字符串中待替换字符的数量,则按照读取的顺序,依次使用用
来替换的字符串中的字符替换待替换字符串中待替换的字符,直至待替换的字符串中
前第二数量个待替换的字符均被替换为用来替换的字符串中的字符。

例如,第一字符串为字符串“A@B_C&”,第二字符串为字符串“abcde”。第一字符
串中,第一目标字符为字符“@”、字符“_”、字符“&”,第一目标字符的数量为3,
故第三数量为3。第二字符串中,第二目标字符为字符“a”、字符“b”、字符“c”、
字符“d”、字符“e”,第二目标字符的数量为5,故第二数量为5。此时,第二数量大
于第三数量,用字符“a”替换“@”,替换完成后得到字符串“AaB_C&”,用字符“b”
替换字符“_”,替换完成后得到字符串“AaBbC&”,用字符“c”替换字符“&”,替换
完成后得到字符串“AaBbCc”,此时,第一目标字符均被替换为第二目标字符,字符串
“AaBbCc”即为执行所有替换之后最终得到的结果。

再例如,第一字符串为字符串“A@B_C&D*E$”,第二字符串为字符串“abc”。第一
字符串中,第一目标字符为字符“@”、字符“_”、字符“&”、字符“*”、字符“$”,
第一目标字符的数量为5,故第三数量为5。第二字符串中,第二目标字符为字符“a”、
字符“b”、字符“c”,第二目标字符的数量为3,故第二数量为3。此时,第二数量小
于第三数量,用字符“a”替换“@”,替换完成后得到字符串“AaB_C&D*E$”,用字符
“b”替换字符“_”,替换完成后得到字符串“AaBbC&D*E$”,用字符“c”替换字符“&”,
替换完成后得到字符串“AaBbCcD*E$”,此时,第二目标字符均用于替换第一目标字符,
字符串“AaBbCcD*E$”即为执行所有替换之后最终得到的结果。

图2是根据本申请实施例的字符串替换方法进行字符串替换的示意图,该图包括
以下步骤:

步骤S202,依次读取字符串s1中的一个待替换字符,即依次读取出第一字符串中
待替换的第一目标字符,与上述步骤S102相同。其中,字符串s1为待替换字符窜,
也就是第一字符串,字符串s1中的待替换字符即为第一目标字符。

步骤S204,依次读取字符串s2中的一个用来替换的字符,即依次读取出第二字符
串中的第二目标字符,与上述步骤S104相同。其中,字符串s2是用来替换的字符串,
也就是第二字符串,字符串s2中的字符即为第二目标字符。

步骤S206,用字符串s2中的当前字符替换字符串s1中的当前待替换字符,即按
照读取第一目标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目
标字符,与上述步骤S106相同。

步骤S208,把替换后的字符串赋值给字符串s1,即将当前时刻的第一字符串中当
前时刻遍历到的第一目标字符替换为当前时刻读取到的第二目标字符后,得到目标字
符串,确定目标字符串为下一时刻被遍历的第一字符串。

步骤S210,判断字符串s1中的待替换字符或者字符串s2是否已遍历完,如果字
符串s1中的待替换字符已遍历完或者字符串s2已遍历完,替换结束,如果字符串s1
中的待替换字符没有遍历完且字符串s2也没有遍历完,执行步骤S202。即比较第二
数量与第三数量的大小,在比较出第二数量大于或等于第三数量的情况下,按照读取
第一目标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符,
直至第一目标字符均被替换为第二目标字符;或在比较出第二数量小于或等于第三数
量的情况下,按照读取第一目标字符和读取第二目标字符的顺序,依次利用第二目标
字符替换第一目标字符,直至第二目标字符均用于替换为第一目标字符。

通过上述实施例,依次把待替换的字符串中需要替换的字符读取出来,把用来替
换的字符串中的字符按照先后顺序读取出来,按照顺序使用用来替换的字符串中的字
符替换待替换的字符串中待替换的字符,解决了现有技术中无法针对性进行字符串替
换的技术问题,达到了针对性进行字符串替换的技术效果。

根据本发明实施例,还提供了一种字符串替换装置。该字符串替换装置可以执行
上述字符串替换方法,上述字符串替换方法也可以通过该字符串替换装置实施。

图3是根据本申请实施例的字符串替换装置的示意图。如图3所示,该字符串替
换装置包括:第一读取单元30、第二读取单元32、替换单元34。

第一读取单元30,用于依次读取出第一字符串中待替换的第一目标字符,其中,
第一目标字符的数量为多个。即,待替换的字符串中有若干个需要替换的字符,把这
些需要替换的字符按照它们在字符串中的先后顺序读取出来。在本申请实施例中,第
一字符串中的多个第一目标字符相互之间可以相同(即可以为同一字符),也可以互不
相同。

第二读取单元32,用于依次读取出第二字符串中的第二目标字符,其中,第二目
标字符为用于替换第一目标字符的字符,并且第二目标字符的数量为多个,第二字符
串为第二目标字符组成的字符串。即,把用来替换的字符串中的字符按照先后顺序读
取出来。

替换单元34,用于按照读取第一目标字符和读取第二目标字符的顺序,依次利用
第二目标字符替换第一目标字符。即,按照顺序,使用用来替换的字符串中的字符替
换待替换的字符串中的字符。

例如,有两串字符串,分别是字符串“A@B_C&D#”和字符串“abcd”,待替换的字
符是字符“@”、字符“_”、字符“&”、字符“#”,想用字符“a”替换字符“@”,用字
符“b”替换字符“_”,用字符“c”替换字符“&”,用字符“d”替换字符“#”。那么,
字符串“A@B_C&D#”即为第一字符串,字符“@”、字符“_”、字符“&”、字符“#”即
为第一目标字符,第一目标字符的数量为4个。字符串“abcd”为第二字符串,字符
“a”、字符“b”、字符“c”、字符“d”为第二目标字符,第二目标字符的数量为4
个。读取第一目标字符的顺序依次为字符“@”、字符“_”、字符“&”、字符“#”,读
取第二目标字符的顺序依次为字符“a”、字符“b”、字符“c”、字符“d”。依照读取
第一目标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符,
得到新的字符串“AaBbCcDd”。

再例如,在做sql解析的时候有一种语句类似:Insert into
table_name(col1,col1,col2,col3)values(?,?,?)。这是一条插入语句,“?”代表要
插入的值,此问号表示在这里进行站位操作,比如真正想要插入的只是“a”、“b”和
“c”,那么就是用“abc”替换上面的“???”,这样最终的语句就变为:
table_name(col1,col1,col2,col3)values(a,b,c)。这样的语句就可以进行数据库的
操作。

通过上述实施例,第一读取单元依次把待替换的字符串中需要替换的字符读取出
来,第二读取单元把用来替换的字符串中的字符按照先后顺序读取出来,替换单元按
照顺序使用用来替换的字符串中的字符替换待替换的字符串中待替换的字符,解决了
现有技术中无法针对性进行字符串替换的技术问题,达到了针对性进行字符串替换的
技术效果。

可选地,第一读取单元包括:遍历子单元,用于遍历第一字符串,第二读取单元
包括:读取子单元,用于在遍历子单元每遍历到一个第一目标字符的情况下,从第二
字符串中读取一个第二目标字符,其中,当前读取到的第二目标字符在第二字符串中
的位置与当前已遍历到的第一目标字符的第一数量对应,在本申请实施例中,当前已
遍历到的第一目标字符的第一数量是几,对应所读取的第二目标字符就位于第二字符
串的第几位上,替换单元包括:第一替换子单元,用于利用当前读取到的第二目标字
符替换当前遍历到的第一目标字符。即,按照顺序读取待替换的字符串中的待替换的
字符,对于每一个待替换的字符,从用来替换的字符串中读取一个字符,用这个字符
去替换待替换的字符串中的待替换的字符,其中,用来替换的字符在用来替换的字符
串中的位置应该与已遍历到的待替换字符的数量是对应的。其中,字符在字符串中的
位置指的是按照从前往后的顺序,该字符是该字符所在的字符串的第几个字符。

例如,第一字符串为字符串“A@B_C&D#”,第二字符串为字符串“abcd”。遍历第
一字符串“A@B_C&D#”,读取字符“A”,字符“A”不是第一目标字符,继续遍历,读
取字符“@”,字符“@”是第一目标字符,从第二字符串“abcd”中读取一个第二目标
字符,由于截止至当前时刻遍历到的第一目标字符的的数量为1,故读取的第二目标
字符在第二字符串中的位置为第1位,由于字符“a”在第二字符串“abcd”中的位置
为第1位,故读取的第二目标字符为“a”。利用第二目标字符“a”替换当前时刻遍历
到的第一目标字符“@”,得到字符串“AaB_C&D#”。

可选地,替换单元还包括:确定子单元,用于在利用当前读取到的第二目标字符
替换当前遍历到的第一目标字符之后,确定目标字符串为下一次被遍历的第一字符串,
其中,将当前遍历的第一字符串中当前遍历到的第一目标字符替换为当前读取到的第
二目标字符后,得到目标字符串。即,当待替换字符串的某个字符被替换之后,得到
一个新的字符串。当继续遍历待替换字符串时,将会遍历这个新的字符串。

例如,第一字符串为字符串“A@B_C&D#”,第二字符串为字符串“abcd”。利用第
二目标字符“a”替换当前时刻遍历到的第一目标字符“@”,得到字符串“AaB_C&D#”。
字符串“AaB_C&D#”即为目标字符串。即,字符串“AaB_C&D#”为下一时刻被遍历的
第一字符串。

可选地,第二读取单元还包括:比较子单元,用于在每遍历到一个第一目标字符,
从第二字符串中读取一个第二目标字符之前,比较第一数量与第二字符串中第二目标
字符的第二数量的大小,其中,第二数量为第二字符串中第二目标字符的总数量,其
中,在比较出第一数量小于或等于第二数量的情况下,每遍历到一个第一目标字符,
从第二字符串中读取一个第二目标字符,或在比较出第一数量大于第二数量的情况下,
停止遍历第一字符串,并确定目标字符串为最终的第一字符串。即,当每次遍历到一
个待替换字符串中的字符时,都要把已遍历过的待替换字符的数量与用来替换的字符
串中字符的数量进行比较,如果已遍历过的待替换字符的数量小于或者等于用来替换
的字符串中字符的数量,则从用来替换的字符串中读取当前字符,用读取到的字符去
替换待替换字符串中的当前待替换字符,如果已遍历过的待替换字符的数量大于用来
替换的字符串中字符的数量,则停止遍历用来替换的字符串,当前的待替换字符串即
为最终得到的字符串。

例如,第一字符串为字符串“A@B_C&”,第二字符串为字符串“abc”。对第一字符
串进行遍历,当遍历到字符“@”时,第一数量为遍历过的第一目标字符的数量,为1。
第二数量为第二字符串“abc”中第二目标字符的数量,由于第二目标字符为字符“a”、
字符“b”、字符“c”,故第二数量为3。由于第一数量1小于第二数量3,故在第二字
符串读取一个第二目标字符,即读取到字符“a”。使用字符“a”替换字符“@”,得到
字符串“AaB_C&”。对字符串“AaB_C&”进行遍历,读取到字符“_”,此时,第一数量
为2,第二数量为3,第一数量小于第二数量,故在第二字符串读取一个第二目标字符,
即读取到字符“b”。使用字符“b”替换字符“_”,得到字符串“AaBbC&”。对字符串
“AaBbC&”进行遍历,读取到字符“&”,此时,第一数量为3,第二数量为3,第一数
量等于第二数量,故在第二字符串读取一个第二目标字符,即读取到字符“c”。使用
字符“c”替换字符“&”,得到字符串“AaBbCc”。

再例如,第一字符串为字符串“A@B_C&D#E%”,第二字符串为字符串“abc”。对第
一字符串进行遍历,当遍历到字符“@”时,第一数量为遍历过的第一目标字符的数量,
为1。第二数量为第二字符串“abc”中第二目标字符的数量,由于第二目标字符为字
符“a”、字符“b”、字符“c”,故第二数量为3。由于第一数量1小于第二数量3,故
在第二字符串读取一个第二目标字符,即读取到字符“a”。使用字符“a”替换字符“@”,
得到字符串“AaB_C&D#E%”。对字符串“AaB_C&D#E%”进行遍历,读取到字符“_”,
此时,第一数量为2,第一数量2小于第二数量3,故在第二字符串读取一个第二目标
字符,即读取到字符“b”。使用字符“b”替换字符“_”,得到字符串“AaBbC&D#E%”。
对字符串“AaBbC&D#E%”进行遍历,读取到字符“&”,此时,第一数量为3,第一数
量等于第二数量,故在第二字符串读取一个第二目标字符,即读取到字符“c”。使用
字符“c”替换字符“&”,得到字符串“AaBbCcD#E%”。对字符串进行遍历,读取到字
符“#”,此时,第一数量为4,第一数量大于第二数量,停止遍历第一字符串,并确
定字符串“AaBbCcD#E%”为最终的第一字符串,即字符串“AaBbCcD#E%”即为所有替
换均完成后的字符串。

可选地,本申请实施例所提供的字符串替换装置还包括:比较单元,用于在依次
读取出第二字符串中的第二目标字符之后,比较第二数量与第三数量的大小,其中,
第二数量为第二字符串中第二目标字符的总数量,第三数量为第一字符串中第一目标
字符的总数量,替换单元包括:第二替换子单元,用于在比较出第二数量大于或等于
第三数量的情况下,按照读取第一目标字符和读取第二目标字符的顺序,依次利用第
二目标字符替换第一目标字符,直至第一目标字符均被替换为第二目标字符;或第三
替换子单元,用于在比较出第二数量小于或等于第三数量的情况下,按照读取第一目
标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符,直至
第一字符串中前第二数量个第一目标字符均被替换为第二目标字符。即,按照先后顺
序依次读取出用来替换的字符串中的字符之后,把用来替换的字符串中所有字符的数
量与待替换字符串中待替换字符的数量进行比较。如果用来替换的字符串中所有字符
的数量大于待替换字符串中待替换字符的数量,则按照读取的顺序,依次使用用来替
换的字符串中的字符替换待替换字符串中待替换的字符,直至待替换字符串中待替换
的字符均被替换为用来替换的字符串中的字符。如果用来替换的字符串中所有字符的
数量小于或等于待替换字符串中待替换字符的数量,则按照读取的顺序,依次使用用
来替换的字符串中的字符替换待替换字符串中待替换的字符,直至待替换的字符串中
前第二数量个待替换的字符均被替换为用来替换的字符串中的字符。

例如,第一字符串为字符串“A@B_C&”,第二字符串为字符串“abcde”。第一字符
串中,第一目标字符为字符“@”、字符“_”、字符“&”,第一目标字符的数量为3,
故第三数量为3。第二字符串中,第二目标字符为字符“a”、字符“b”、字符“c”、
字符“d”、字符“e”,第二目标字符的数量为5,故第二数量为5。此时,第二数量大
于第三数量,用字符“a”替换“@”,替换完成后得到字符串“AaB_C&”,用字符“b”
替换字符“_”,替换完成后得到字符串“AaBbC&”,用字符“c”替换字符“&”,替换
完成后得到字符串“AaBbCc”,此时,第一目标字符均被替换为第二目标字符,字符串
“AaBbCc”即为执行所有替换之后最终得到的结果。

再例如,第一字符串为字符串“A@B_C&D*E$”,第二字符串为字符串“abc”。第一
字符串中,第一目标字符为字符“@”、字符“_”、字符“&”、字符“*”、字符“$”,
第一目标字符的数量为5,故第三数量为5。第二字符串中,第二目标字符为字符“a”、
字符“b”、字符“c”,第二目标字符的数量为3,故第二数量为3。此时,第二数量小
于第三数量,用字符“a”替换“@”,替换完成后得到字符串“AaB_C&D*E$”,用字符
“b”替换字符“_”,替换完成后得到字符串“AaBbC&D*E$”,用字符“c”替换字符“&”,
替换完成后得到字符串“AaBbCcD*E$”,此时,第二目标字符均用于替换第一目标字符,
字符串“AaBbCcD*E$”即为执行所有替换之后最终得到的结果。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有
详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它
的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,
可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所
显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模
块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到
多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案
的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成
的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,
可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质
上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的
形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一
台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所
述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only
Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘
等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润
饰也应视为本申请的保护范围。

字符串替换方法和装置.pdf_第1页
第1页 / 共18页
字符串替换方法和装置.pdf_第2页
第2页 / 共18页
字符串替换方法和装置.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《字符串替换方法和装置.pdf》由会员分享,可在线阅读,更多相关《字符串替换方法和装置.pdf(18页珍藏版)》请在专利查询网上搜索。

本申请公开了一种字符串替换方法和装置。其中,该方法包括:依次读取出第一字符串中待替换的第一目标字符,其中,第一目标字符的数量为多个;依次读取出第二字符串中的第二目标字符,其中,第二目标字符为用于替换第一目标字符的字符,并且第二目标字符的数量为多个,第二字符串为第二目标字符组成的字符串;以及按照读取第一目标字符和读取第二目标字符的顺序,依次利用第二目标字符替换第一目标字符。本申请解决了现有技术中无法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1