Создайте строку и добавьте текст к ней

Забавно, у меня было текстовое поле, и я мог добавлять к нему строки.

Но теперь я создаю такую ​​строку:

    Dim str As String = New String("")

И я хочу добавить к нему другие строки. Но для этого нет никакой функции. Что я делаю неправильно?

Ответы

Ответ 1

Конкатенация с оператором

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 для каждой конкатенации, а также сборщик мусора.

Ответ 2

Другой способ сделать это - добавить новые символы в строку следующим образом:

Dim str As String

str = ""

Чтобы добавить текст в строку таким образом:

str = str & "and this is more text"

Ответ 3

Используйте оператор конкатенации строк:

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

Строки в .NET неизменяемы и, следовательно, не существует понятия добавляемых строк. Все модификации строк приводят к созданию и возврату новой строки.

Это, очевидно, вызывает ужасную работу. В обычном повседневном коде это не проблема, но если вы делаете интенсивные строковые операции, в которые время имеет смысл, вам будет полезно изучить класс StringBuilder. Это позволяет добавлять очереди в очередь. После того, как вы закончите добавление, вы можете попросить его выполнить все операции в очереди.

Для получения дополнительной информации об обоих методах см. "Как сгруппировать несколько строк" .