创建一个字符串并向其附加文本

问题描述 投票:0回答:4

有趣的是,我有一个文本框,我可以向其中添加字符串。

但现在我创建一个像这样的字符串:

    Dim str As String = New String("")

我想附加其他字符串。但没有这样做的功能。我做错了什么?

vb.net
4个回答
40
投票

使用 & 运算符连接

Dim str as String  'no need to create a string instance
str = "Hello " & "World"

您也可以使用 + 运算符进行连接,但在尝试连接数字时可能会给自己带来麻烦。


使用 String.Concat() 连接

str = String.Concat("Hello ", "World")

在连接字符串数组时很有用


StringBuilder.Append()

当使用StringBuilder连接大量字符串时,会带来更好的性能。

    Dim sb as new System.Text.StringBuilder()
    str = sb.Append("Hello").Append(" ").Append("World").ToString()

.NET 中的字符串是不可变的,因此会为每个连接实例化一个新的 String 对象及其垃圾回收。


16
投票

执行此操作的另一种方法是将新字符添加到字符串中,如下所示:

Dim str As String

str = ""

以这种方式将文本附加到字符串中:

str = str & "and this is more text"

7
投票

使用字符串连接运算符:

Dim str As String = New String("") & "some other string"

.NET 中的字符串是不可变的,因此不存在附加字符串的概念。所有字符串修改都会导致创建并返回新字符串。

这显然会导致糟糕的表现。在常见的日常代码中,这不是问题,但如果您正在进行密集的字符串操作,其中时间至关重要,那么您将从研究 StringBuilder 类中受益。它允许您对追加进行排队。完成附加后,您可以要求它实际执行所有排队的操作。

有关这两种方法的更多信息,请参阅“如何:连接多个字符串”。


0
投票
VB 有 &= 运算符(类似于 C/C# 的 += 运算符)。

Dim myString as string = "Hello" myString &= " World"
    
© www.soinside.com 2019 - 2024. All rights reserved.