【问题标题】:How to prepend to a StringBuilder?如何添加到 StringBuilder?
【发布时间】:2014-08-07 21:37:54
【问题描述】:

VB.NET 有一个方法,就像 java 一样,可以附加到 StringBuilder 类型的对象上 但是我可以在这个对象之前添加一些字符串吗(我的意思是在 stringbuilder 值之前添加一些字符串,而不是之后)。这是我的代码:

'Declare an array
    Dim IntegerList() = {24, 12, 34, 42}
    Dim ArrayBefore As New StringBuilder()
    Dim ArrayAfterRedim As New StringBuilder()
    ArrayBefore.Append("{")
    For i As Integer = IntegerList.GetLowerBound(0) To IntegerList.GetUpperBound(0)
        ArrayBefore.Append(IntegerList(i) & ", ")
    Next
    ' Close the string
    ArrayBefore.Append("}")
    'Redimension the array (increasing the size by one to five elements)
    'ReDim IntegerList(4)

    'Redimension the array and preserve its contents
    ReDim Preserve IntegerList(4)

    ' print the new redimesioned array
    ArrayAfterRedim.Append("{")
    For i As Integer = IntegerList.GetLowerBound(0) To IntegerList.GetUpperBound(0)
        ArrayAfterRedim.Append(IntegerList(i) & ", ")
    Next
    ' Close the string
    ArrayAfterRedim.Append("}")

    ' Display the two arrays

    lstRandomList.Items.Add("The array before: ")
    lstRandomList.Items.Add(ArrayBefore)
    lstRandomList.Items.Add("The array after: ")
    lstRandomList.Items.Add(ArrayAfterRedim)

如果您查看我的代码的最后 4 行,我想在我的列表框控件中的一行中添加字符串生成器之前的文本。所以代替这个:

 lstRandomList.Items.Add("The array before: ")
    lstRandomList.Items.Add(ArrayBefore)

我想要这样的东西:

lstRandomList.Items.Add("The array before: " & ArrayBefore)

【问题讨论】:

  • 不是很清楚问题是什么。试试"The array before: " & ArrayBefore.ToString
  • Stringbuilder 有一个 Insert 方法,所以如果你在 0 处插入,你就是在等待。
  • 为什么要重新调整阵列?你真的想在这里做什么?

标签: vb.net string stringbuilder prepend


【解决方案1】:

您可以使用StringBuilder.Insert 预先添加到字符串生成器:

Dim sb = New StringBuilder()
sb.Append("World")
sb.Insert(0, "Hello, ")
Console.WriteLine(sb.ToString())

这个输出:

Hello, World

编辑

糟糕,注意到@dbasnett 在评论中说了同样的话...

【讨论】:

    【解决方案2】:

    使用StringBuilderFor 循环,您的代码似乎有点过头了。

    为什么不这样做?

    Dim IntegerList() = {24, 12, 34, 42}
    
    lstRandomList.Items.Add("The array before: ")
    lstRandomList.Items.Add(String.Format("{{{0}}}", String.Join(", ", IntegerList)))
    
    ReDim Preserve IntegerList(4)
    
    lstRandomList.Items.Add("The array after: ")
    lstRandomList.Items.Add(String.Format("{{{0}}}", String.Join(", ", IntegerList)))
    

    工作完成。更简单的代码。

    【讨论】:

      猜你喜欢
      • 2014-11-02
      • 1970-01-01
      • 2020-02-06
      • 2015-09-18
      • 2018-09-22
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多