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

Vol*_*ort 20 vb.net

好笑,我有一个文本框,我可以附加字符串.

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

    Dim str As String = New String("")
Run Code Online (Sandbox Code Playgroud)

而且我想附加其他字符串.但这样做没有任何功能.我究竟做错了什么?

Phi*_*rie 32

与&运算符连接

Dim str as String  'no need to create a string instance
str = "Hello " & "World"
Run Code Online (Sandbox Code Playgroud)

您也可以使用+运算符进行连接,但在尝试连接数字时可能会遇到麻烦.


String.Concat()连接

str = String.Concat("Hello ", "World")
Run Code Online (Sandbox Code Playgroud)

连接字符串数组时很有用


StringBuilder.Append()

当使用StringBuilder连接大量字符串时,它将产生更好的性能.

    Dim sb as new System.Text.StringBuilder()
    str = sb.Append("Hello").Append(" ").Append("World").ToString()
Run Code Online (Sandbox Code Playgroud)

.NET中的字符串是不可变的,导致为每个连接实例化一个新的String对象以及它的垃圾收集.


小智 9

另一种方法是将新字符添加到字符串中,如下所示:

Dim str As String

str = ""
Run Code Online (Sandbox Code Playgroud)

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

str = str & "and this is more text"
Run Code Online (Sandbox Code Playgroud)

  • 这是回答这个问题的唯一答案 (3认同)

Kas*_*dum 6

使用字符串连接运算符:

Dim str As String = New String("") & "some other string"
Run Code Online (Sandbox Code Playgroud)

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

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

有关这两种方法的详细信息,请参阅"如何:连接多个字符串".