`

字符串替换算法【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  
测了下,效率很高啊。谢谢分享。

相关推荐

    字符串相似度算法 字符串相似度算法 字符串相似度算法

    字符串相似度算法 字符串相似度算法是一种衡量两个字符串之间相似度的方法,广泛应用于自然语言处理、数据挖掘、机器学习等领域。在本文中,我们将讨论一种常用的字符串相似度算法:Levenshtein Distance。 什么是...

    字符串检索与替换的Java程序.doc

    7. 字符串替换算法:该程序使用替换算法来实现字符串的替换操作,该算法将原始字符串中的指定字符串替换为新的字符串。 8. Java语法特点:该程序使用Java语言的多种语法特点,例如继承、多态、抽象类和接口等。例如...

    java字符串相似度算法

    Java字符串相似度算法是用于衡量两个字符串之间相似程度的一种计算方法。在文本处理、信息检索、数据清洗等领域中,这种算法具有重要的应用价值。这里主要介绍了一种基于Levenshtein距离的Java实现。 Levenshtein...

    逐个替换字符串中的指定字符

    - **正则表达式**:了解正则表达式的使用可以帮助更加灵活地处理字符串替换任务。 - **算法优化**:研究不同的字符串搜索算法,如KMP算法等,可以提高字符串处理的效率。 综上所述,通过理解字符串的基本概念、掌握...

    字符串查找替换

    字符串替换则是将字符串中符合条件的部分替换为新的字符串。这通常涉及到了解如何操作字符串,如创建新的字符串副本,或者在原始字符串上直接进行修改(如果支持)。例如,在Python中,我们可以使用`str.replace(old...

    字符串查找替换(超经典)

    替换操作则涉及将字符串中的某个或某些特定子字符串替换成另一个字符串。在Python中,可以使用`str.replace()`方法;在Java中,可以使用`String.replace()`或`String.replaceAll()`;而在C++中,可以使用`std::...

    模糊匹配算法java实现

    1. **Levenshtein距离**:Levenshtein距离是一种衡量两个字符串相似度的方法,定义为由一个字符串转换成另一个字符串最少的单字符编辑操作次数(插入、删除或替换)。Java中可以自定义实现,或者使用开源库Apache ...

    替换目录里所有文件相应字符串java语言

    2. **字符串替换**:在读取的内容中,通过`String`类的`replace()`或`replaceAll()`方法进行字符串替换操作。`replace()`函数用于简单替换,而`replaceAll()`支持正则表达式替换。 3. **写回文件**:使用`FileWriter...

    一次查找替换文本中多个字符串

    这个小工具,"一次查找替换文本中多个字符串",是Java编程语言实现的一个实用程序,它专门针对那些需要批量处理文本文件,查找并替换特定字符串的用户。Java作为一种跨平台的语言,使得这个工具可以在不同的操作系统...

    多行批量字符替换 可替换任何文件里的字符串 特色在多行替换

    3. **搜索算法**:在大量文本中快速定位目标字符串,需要高效的搜索算法,如KMP、Boyer-Moore或Rabin-Karp等,它们能在平均情况下提供较好的性能。 4. **文本编辑器/IDE集成**:许多现代的文本编辑器和集成开发环境...

    算法与数据结构:字符串

    字符串在许多编程语言中都有专门的数据类型来表示,例如Python中的str、Java中的String、C++中的std::string等。字符串类通常包含以下属性和方法: 1. **属性**: - 长度:表示字符串中字符的数量。 - 内容:存储...

    5统计某个字符串中大小写字母A或a出现的次数java

    在Java编程语言中,统计一个字符串中特定字符的出现次数是一项常见的任务,这对于文本分析、数据处理和算法实现都有很重要的应用。在这个问题中,我们需要编写一个程序来计算字符串中大写"A"和小写"a"的总数。下面将...

    字符串批量替换小工具(java版)

    在Java中,进行字符串替换通常会用到`String`类的方法,如`replace()`、`replaceAll()`或`replaceFirst()`。这些方法各有其特点和适用场景,例如`replace()`只替换首次出现的目标字符串,而`replaceAll()`和`...

    文件中的字符串查找替换工具

    在IT行业中,字符串查找与替换是一项基础且至关重要的任务,特别是在文本处理、编程、文档编辑等领域。"文件中的字符串查找替换工具"就是这样一个专门解决这类问题的软件或应用程序。它能够帮助用户快速、批量地在多...

    work2_分割字符串_字符串处理_

    无论是进行数据解析、日志分析,还是构建复杂的文本处理算法,有效的字符串操作都能极大地提高代码的效率和可读性。因此,花时间学习和实践这些基本技能是每个程序员职业生涯中不可或缺的一部分。

    字符串加密算法详解.pdf

    本文将详细介绍几种常见的字符串加密方法及其应用特点,并重点探讨Java AES加密算法的工作原理和实现步骤。 #### 二、常见字符串加密方法及其特点 1. **异或加密(XOR Encryption)** - **原理**:将字符串中的每...

    JAVA两个字符串比较匹配字数.docx

    在Java编程中,比较两个字符串的匹配字数是一项常见的任务,尤其是在文本处理或模式匹配的场景下。以下是一个简单的实现,通过`RangeDifferencer4Bak`类来完成这个功能。这个类有两个主要方法:`getTempModel`和`...

    Horspool字符串匹配输入增强技术

    在文本处理中,如搜索、替换、编辑距离计算等,都需要用到字符串匹配。 2. **Horspool算法**:Horspool算法是基于Boyer-Moore算法的一种改进,它通过预处理模式串并使用滑动窗口的方式减少不必要的比较,从而提高...

    javasrcipt去字符串空格

    1. **性能问题**:当处理非常大的字符串时,频繁使用正则表达式可能会导致性能下降,应考虑优化算法。 2. **Unicode支持**:默认情况下,正则表达式只支持ASCII范围内的空白字符。如果字符串中含有非ASCII的空白字符...

    ahocorasick:使用Java中的Hashmap轻松实现多模式字符串匹配算法(AhoCorasick)

    Ahocorasick 使用Java中的Hashmap轻松实现多模式字符串匹配算法(AhoCorasick) 该项目是使用带有Java SE的eclipse完成的。 要使用它,只需将其导入到Eclipse中即可。 项目状态:完成

Global site tag (gtag.js) - Google Analytics