`

字符串替换算法【java】

 
阅读更多
public class StringReplace {

	/**
	 * 字符串替换
	 * @param srcString
	 * @param oldString
	 * @param newString
	 * @return
	 */
	public String replace(String srcString, String oldString, String newString) {
		if(srcString == null) {
			return null;
		}
		char[] lineChars = srcString.toCharArray();
		char[] newStringChars = newString.toCharArray();
		int oldLength = oldString.length();
		StringBuffer buf = new StringBuffer(lineChars.length); //用于存储替换后的字符串
		
		int i = 0;
		int j = i;
		while((i = srcString.indexOf(oldString,i)) >= 0){
			buf.append(lineChars, j, i-j).append(newStringChars);
			i += oldLength;
			j = i;
		}
		buf.append(lineChars, j, lineChars.length - j); //拼接源字符串后面剩下的字符串
		return buf.toString();
	}
	
	public static void main(String[] args) {
	   StringReplace mp = new StringReplace();
	   String str = "xbn_sxsghdhs我是中国人xxshjsh中国s_sx我爱中国China...;;;XH_sx()8jsdh*^_sxghdgshd";
	   long start = System.nanoTime();
	   System.out.println(mp.replace(str, "_sx", "$$$"));
	   System.out.println(System.nanoTime() - start);
	   
	   String str1 = "xbn_sxsghdhs我是中国人xxshjsh中国s_sx我爱中国China...;;;XH_sx()8jsdh*^_sxghdgshd";
	   start = System.nanoTime();
	   System.out.println(str1.replace("_sx", "$$$"));
	   System.out.println(System.nanoTime() - start);
	   
	   String str2 = "%gsfg^gsgh*jChinanxj&^&bbsnakkIloveChina*#KChina#@wdschiaChina";
	   start = System.nanoTime();
	   System.out.println(mp.replace(str2, "China", "中国"));
	   System.out.println(System.nanoTime() - start);
	   
	   start = System.nanoTime();
	   System.out.println(str2.replace("China", "中国"));
	   System.out.println(System.nanoTime() - start);
	}
}

 

分享到:
评论
1 楼 cccoooccooco 2014-03-01  
测了下,效率很高啊。谢谢分享。

相关推荐

    java 上机编程

    java上机试题 非常经典 SQL 编程 不限制语言于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把“a”替换为“b”。...

    rabin-karp-search:用于在文本中查找模式实例的字符串搜索算法

    它可用于检测另一个字符串中某个字符串的出现。 可用于检测detect窃。 注意我建议不要使用此算法,迭代地调用可以在V8中产生更好的性能。 用法 npm install var rks = require('rabin-karp-search') rks.search('...

    kmp.rar_字符串匹配

    kmp算法,能够读取txt和java文件,进行kmp查找匹配字符串后,可进行替换字符串

    中文数字转成阿拉伯数字 java 实现

    独立开发,实测可用, 将阿拉伯和中文数字组合的字符串转成阿拉伯数字的整型 包。例如: “八万三千20”就可以转成整型 803020 。解压后,引用包。调用方法 在UnitTest.java 中有

    C++ string替换指定字符实例代码

    C++的string提供了replace方法来实现字符串的替换,但是有时候我们想要实现类似JAVA中的替换功能——将string中的某个字符a全部替换成新的字符b,这个功能在提供的replace方法中并没有实现。 不过只要再深入了解一下...

    Java开发技术大全(500个源代码).

    ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维...

    基于相似度匹配的反抄袭算法的研究

    提出采用模式匹配中的基于字符串匹配的相似度算法,通过添加、删除、替换等操作还原文档,并计算文档间的相似距离,根据相似距离获得文档相似度,从而判断文档的抄袭比例。反抄袭算法的研究实现为遏制进一步恶化的抄袭...

    OS-Project-Phase2:页面替换算法

    页面替换算法,LRU和FIFO。 输入结构 该程序获得三行输入: 一个整数,其中包含页数 一个字符串,其中包含参考字符串 一个字符串,其中包含帧的大小和我们要使用的算法 范例一: 10 0 1 2 0 3 1 4 0 1 4 3 FIFO ...

    编辑距离-java语言实现

    Levenshtein Distance算法可以看作动态规划 它的思路就是从两个字符串的左边开始比较 记录已经比较过的子串相似度 实际上叫做距离 然后进一步得到下一个字符位置时的相似度 用下面的例子: GUMBO和GAMBOL 当算到矩阵D...

    leetcode答案-Java-Portfolio:这些是一些具有挑战性的Java程序,非常棒!

    实现一个算法来确定一个字符串是否包含所有唯一字符。 如果你不能使用额外的数据结构怎么办? 给定两个字符串,编写一个方法来判断一个字符串是否是另一个字符串的排列。 编写一个方法,用“ ”替换字符串中的所有...

    JAVA上百实例源码以及开源项目源代码

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    JAVA上百实例源码以及开源项目

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    36丨AC自动机:如何用多模式串匹配实现敏感词过滤功能?1

    基于单模式串和 Trie 树实现的敏感词过滤我们前面几节讲了好几种字符串匹配算法,有 BF 算法、RK 算法、BM 算法、KMP 算法,前面四种算法都是单模式串

    JAVA 范例大全 光盘 资源

    实例38 Java字符串与文件的互转 88 实例39 截取带汉字的字符串 91 实例40 替换字符串中的部分字符 92 实例41 Java字符串之密码加密 93 实例42 正则表达式验证字符串 95 第7章 Java常用类 98 实例43 数字的舍入...

    Page-Replacement:不同页面替换算法的仿真

    页面替换不同页面替换算法的仿真该程序接受替换算法(使用堆栈的FIFO,OPT或LRU),数量在3到10之间的存储帧和参考字符串的选择,并输出页面错误的数量。

    StringSequenceUtil.java

    查询是不支持使用like关键字的, 针对需要用到模糊查询的地方,一般都会替换为">="与"的组合,前者的值为目标字符串,后者的值需要计算,依据目标字符串计算下一个序列字符串(如xx like 'test', 替换为 xx >= 'test...

    JAVA敏感词过滤的代码

    算法思路:把敏感词的第一个字符取出来,作为比较对象。遍历整个字符串,如果发现字符跟敏感词第一个字符相同,就从字符串取出跟关键词相同长度的子串比较,如果相同就替换。本算法比较适合敏感词都不长的场合。

    java开源包4

    用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC框架 nfs-rpc nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用...

    java开源包101

    用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC框架 nfs-rpc nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用...

    数据结构实验3 串操作.doc

    public MyString toLowerCase() //返回将大写字母转换成小写字母的字符串 public MyString toUpperCase() //返回将小写字母转换成大写字母的字符串 public MyString replace(char old, char newc) //用字符newc替换...

Global site tag (gtag.js) - Google Analytics