C#中是否有任何方法IndexOf或Contains.以下是代码:
var sb = new StringBuilder(mystring);
sb.Replace("abc", "a");
string dateFormatString = sb.ToString();
if (sb.ToString().Contains("def"))
{
sb.Replace("def", "aa");
}
if (sb.ToString().Contains("ghi"))
{
sb.Replace("ghi", "assd");
}
Run Code Online (Sandbox Code Playgroud)
你可能已经注意到我一次又一次地使用ToString(),我想避免它,因为它每次都在创建新的字符串.你能帮帮我怎样才能避免它?
Jon*_*eet 19
如果StringBuilder 不包含"def",那么执行替换不会导致任何问题,所以只需使用:
var sb = new StringBuilder(mystring);
sb.Replace("abc", "a");
sb.Replace("def", "aa");
sb.Replace("ghi", "assd");
Run Code Online (Sandbox Code Playgroud)
没有这样的方法,StringBuilder但你不需要Contains测试.你可以这样写:
sb.Replace("abc", "a");
sb.Replace("def", "aa");
sb.Replace("ghi", "assd");
Run Code Online (Sandbox Code Playgroud)
如果Replace未找到第一个参数to中的字符串,那么调用Replace是一个空操作 - 正是您想要的.
文件说明:
用此另一个指定的字符串替换此实例中指定字符串的所有匹配项.
你读这篇文章的方式是,当没有出现时,什么也没做.
| 归档时间: |
|
| 查看次数: |
21649 次 |
| 最近记录: |