8 c#
我有这样的字符串:
var abc = "00345667";
var def = "002776766";
Run Code Online (Sandbox Code Playgroud)
前两个字符总是" 00".如何将这些更改为" 01"?
Adi*_*dil 12
您可以使用Substring().
var res = "01" + abc.Substring(2);
Run Code Online (Sandbox Code Playgroud)
编辑更多替换时的一些性能考虑因素.
如果要替换更多子字符串,可以使用StringBuilder,阅读本文如何在Visual C#中提高字符串连接性能
String Concatenation VS String Builder
在Visual C/C++中通过strcat()改进字符串连接的一种技术是将大字符数组分配为缓冲区并将字符串数据复制到缓冲区中.在.NET Framework中,字符串是不可变的; 它不能被修改到位.C#+连接运算符构建一个新字符串,并在连接大量文本时导致性能降低.
但是,.NET Framework包含一个针对字符串连接进行了优化的StringBuilder类.它提供了与在C/C++中使用字符数组相同的好处,以及自动增加缓冲区大小(如果需要)并为您跟踪长度.本文中的示例应用程序演示了StringBuilder类的用法,并将性能与串联进行了比较.参考
使用StringBuilder将"002776766"更改为"012776766".
StringBuilder sb = new StringBuilder(def);
sb[1] = '1';
def = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
string result = string.Format("01{0}", abc.Substring(2));
Run Code Online (Sandbox Code Playgroud)
string result = Regex.Replace(abc, "^00", "01");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15202 次 |
| 最近记录: |