.net - StringBuilder 可以替换一个实例吗?

标签 .net stringbuilder

我在 StringBuilder 对象中有一段文本。我需要用另一个替换一个子串。 StringBuilder Replace 方法可以做到这一点,但它会替换子字符串的每个实例,而我只想替换第一个找到的实例。有没有办法告诉 StringBuilder 只做一个替换?

我确信我可以自己编写代码,我只是想知道是否有一种内置的方法可以实现我目前所缺少的。

最佳答案

是的,但不是直接的。 Replace 的四个重载中的两个对 StringBuilder 内容的子字符串起作用,但您需要找到第一次出现的位置才能起作用。

这是你想要的:
http://msdn.microsoft.com/en-us/library/y1bxd041.aspx

编辑:不幸的是,如果不在 StringBuilder 上调用 ToString,我看不到找到第一次出现的方法。

(对 VB 感到抱歉,我打开了一个 VB 项目。)

Dim orig As String = "abcdefgabcdefg"
Dim search As String = "d"
Dim replace As String = "ZZZ"
Dim sb As New StringBuilder(orig)

Dim firstOccurrence = sb.ToString().IndexOf(search)

If firstOccurrence > -1 Then
    sb.Replace(search, replace, firstOccurrence, search.Length)
End If

关于.net - StringBuilder 可以替换一个实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364205/

相关文章:

java - 插入for循环失败

java - Java中一个String怎么可能包含所有StringBuilder的结果

java - 如何在 stringbuilder 中放置空格

c# - 如何在表达式树 C# 中使用隐式转换?

c# - 谁取消了我的任务?

Java:IndexOf(String string)返回错误字符

stringbuilder - Apache Common 的 StrBuilder 和 Java 的 StringBuilder 有什么区别?

.net - 如何将 UserProperty 添加到 Outlook 约会项目

c# - 开始完成高级项目教程

c# - 字符串中的转义序列