C# String Replace高效的实例方法
[ThreadStatic]
static char[] mTempChars;
protected static char[] GetTempData()
{
if (mTempChars == null)
mTempChars = new char[1024 * 64];
return mTempChars;
}
public static string Replace(string value, string oldData, string newData)
{
char[] tmpchars = GetTempData();
int newpostion = 0;
int oldpostion = 0;
int length = value.Length;
int oldlength = oldData.Length;
int newlength = newData.Length;
int index = 0;
int copylength = 0;
bool eq = false;
while (index < value.Length)
{
eq = true;
for (int k = 0; k < oldlength; k++)
{
if (value[index + k] != oldData[k])
{
eq = false;
break;
}
}
if (eq)
{
copylength = index - oldpostion;
value.CopyTo(oldpostion, tmpchars, newpostion, copylength);
newpostion += copylength;
index += oldlength;
oldpostion = index;
newData.CopyTo(0, tmpchars, newpostion, newlength);
newpostion += newlength;
}
else
{
index++;
}
}
if (oldpostion < length)
{
copylength = index - oldpostion;
value.CopyTo(oldpostion, tmpchars, newpostion, copylength);
newpostion += copylength;
}
return new string(tmpchars, 0, newpostion);
}
相关推荐
-
javascript模拟实现C# String.format函数功能代码
C# string.format这个功能用到的地方比较多, 所以就用js实现了一个简单的版本 : 复制代码 代码如下: String.format = function () { var formatStr = arguments[0]; if ( typeof formatStr === 'string' ) { var pattern, length = argume
-
C#中string.format用法详解
本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项. String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项. String.Format (IFormatProvide
-
C#中把字符串String转换为整型Int的小例子
本文介绍如何在使用C#开发程序时,将一个字符串String变量的值转换为一个整型Int变量. 比如,我们在C#中定义一个字符串变量,用它来获取一个xml中的值.小编这里并不是故意要用一个字符串去获取xml节点的值,而是使用InnerText的方式获取的值必须是字符串String类型的. 复制代码 代码如下: string tmpValue = ""; tmpValue = xml.DocumentElement["expirydays"].InnerText.Tri
-
C#中string和StingBuilder内存中的区别实例分析
本文实例分析了C#中string和StingBuilder内存中的区别,有助于更好的掌握C#程序设计中string和StingBuilder的用法.分享给大家供大家参考.具体方法如下: 关于 string和StringBuilder的区别参考MSDN.本文用程序演示它们在内存中的区别,及其因此其行为不同. 先来看看下面这段代码: //示例: string 的内存模型 namespace ConsoleApplication2 { class Program { static void Main(
-
C#中String与string的区别分析
本文实例展示了C#程序设计中String与string的区别,对于C#初学者来说有很好的参考借鉴价值.具体如下: 一.区别分析: String:类,System.String string:类型,变量 两者本质上没有任何区别,都是System.String,string只是System.String的别名而已 唯一的区别在于如何按照代码约定的来写,如声明变量时使用小写string,使用System.String下方法时使用大写的String 二.示例代码如下: class Program { s
-
C#自定义函数NetxtString生成随机字符串
本文实例展示了C#自定义函数NetxtString实现生成随机字符串的方法,在进行C#项目开发中非常实用!分享给大家供大家参考. 一.生成随机字符串 关键代码如下: /// <summary> /// 生成随机字符串 /// </summary> /// <param name="random">Random</param> /// <param name="size">字符串长度</param>
-
C#中StringBuilder类的使用总结
String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵.如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类.例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能. 通过用一个重载的构造函数方法初始化变量,可以创建
-
浅析C#中的Main(String[] args)参数输入问题
指定相关的测试代码 首先,写一个用于测试的关于Main(String[] args)参数输入有关的代码类,如下: 复制代码 代码如下: using System; public class Hello{ public static void Main(String[] args) { switch (args[0]) { case "老板": Console.WriteLine("早上
-
C#实现去除Strings中空格的方法
本文实例讲述了C#实现去除Strings中空格的方法,分享给大家供大家参考.具体实现方法如下: 一般来说,你或许知道你能使用String.Trim方法去除字符串的头和尾的空格,不幸运的是. 这个Trim方法不能去除字符串中间的C#空格. 示例代码如下: 复制代码 代码如下: string text = " My test\nstring\r\n is\t quite long "; string trim = text.Trim(); 这个'trim' 字符串将会是: 复制代码
-
C# String Replace高效的实例方法
复制代码 代码如下: [ThreadStatic] static char[] mTempChars; protected static char[] GetTempData() { if (mTempChars == null) mTempChars = new char[1024 * 64]; return mTempChars; } public static string
-
js中字符替换函数String.replace()使用技巧
定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement)参数 描述 regexp/substr 必需.规定子字符串或要替换的模式的 RegExp 对象. 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象. replacement 必需.一个字符串值.规定了替换文本或生成替换文本的函数.
-
从jQuery.camelCase()学习string.replace() 函数学习
功能 camelCase函数的功能就是将形如background-color转化为驼峰表示法:backgroundColor. 此函数在jQuery的data函数,以及涉及到css的诸多函数中都有用到. jQuery的实现 复制代码 代码如下: //正则匹配 rdashAlpha = /-([a-z])/ig, // camelCase替换字符串时的回调函数 fcamelCase = function( all, letter ) { return letter.toUpperCase(); }
-
关于JS字符串函数String.replace()
替换匹配给定正则表达式的(一个或多个)子串 string.replace(regexp, replacement) 参数: regexp: RegExp对象或者字符串 replacement: 替换文本的字符串,或者一个函数,用于在调用时生成对应的替换文本. 返回: 返回一个替换好的新字符串 描述: replacement可以是字符串或一个函数.如果是一个函数,它将在每个匹配结果上调用,它返回的字符串将作为替换文本. 传入该函数的参数: 1) 匹配该模式的字符串 2) 匹配该模式中某个圆括号子表
-
Javascript String.replace的妙用
String.replace( ) 简介 语法: 复制代码 代码如下: string.replace(regexp, replacement) regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作:如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作. replacement :您要替换成的字符. 返回值是执行替换操作后的字符串. String.replace( ) 的
-
Java String.replace()方法"无效"的原因及解决方式
首先我们来看个例子 public class Demo1 { public static void main(String[] args) { String aa="abcd"; aa.replace("a","f"); System.out.println("输出结果是"+aa); } } 运行结果是什么呢?我们先看看这个方法的api 返回一个新的字符串,用newChar替换此字符串中出现的所有oldChar 所以这里的结果
-
JavaScript String.replace函数参数实例说明
Email:longsu2010 at yeah dot net js String的replace函数的函数签名如下: replace(match/* 字符串OR正则表达式 */, replacement/* 字符串OR函数 */) 作用是将源自符串中的match替换为replacement并返回替换后的字符串. 如果第一参数是字符串就没什么好说的了,但是要记住此时只在源自符串替换一次match(第一次)函数就执行完成了. 所以第一参数通常是一个正则表达式,举例如下: replace(/a/g
-
关于JavaScript中string 的replace
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法:string.replace(subStr/reg,replaceStr/function) 第一个参数可以是字符串的子字符串,也可以是一个正则表达式,第二个参数可以是一个字符串或者一个处理方法,下面我们分别看看 复制代码 代码如下: document.write('1234'.replace(1, 'X'));我们可以得到结果:X234,很正常,但是 复制代码 代码如下: document
-
C++中的string类的用法小结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的.也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法.其实,可能很多人很可能会忽略掉标准C++中string类的使用.标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个
-
c++中的string常用函数用法总结
标准c++中string类函数介绍 注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要.我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?).我们尽可以把它看成是C++的基本数据类型. 好了,进入正题---首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>
随机推荐
- 学习YUI.Ext第五日--做拖放Darg&Drop
- 利用Angularjs中模块ui-route管理状态的方法
- 深入java对象复制的分析
- java实现的正则工具类
- 零基础易语言入门教程(一)
- JavaScript实现弹出模态窗体并接受传值的方法
- javascript 字符 Escape,encodeURI,encodeURIComponent
- python 爬取微信文章
- 深入解析C++编程中__alignof 与__uuidof运算符的使用
- 多个jquery.datatable共存,checkbox全选异常的快速解决方法
- MS SQL SERVER 数据库日志压缩方法与代码
- IE弹出www.zhaomeimei.cn的解决教程
- JavaScript实现彩虹文字效果的方法
- 解读赫夫曼树编码的问题
- 从C语言过渡到C++之引用(别名)
- ThinkPHP中自定义错误页面和提示页面实例
- 如何优雅的进行Spring整合MongoDB详解
- layui的checbox在Ajax局部刷新下的设置方法
- 实例详解Linux 中的命令链接操作符
- Python Pandas数据结构简单介绍