Criação de novas cadeias de caracteres no .NET

O .NET permite que cadeias de caracteres sejam criadas usando atribuição simples e sobrecarrega um construtor de classe para dar suporte à criação de cadeias de caracteres usando um número de parâmetros diferentes. O .NET também fornece vários métodos na classe System.String que criam novos objetos de cadeia de caracteres combinando várias cadeias de caracteres, matrizes de cadeias de caracteres ou objetos.

Criando cadeias de caracteres usando atribuição

A maneira mais fácil para criar um novo objeto String é simplesmente atribuir uma cadeia de caracteres literal a um objeto String.

Criando cadeias de caracteres usando um construtor de classe

Você pode usar sobrecargas do constructo de classe String para criar cadeias de caracteres de matrizes de caracteres. Você também pode criar uma nova cadeia de caracteres duplicando um caractere específico, m número de vezes especificado.

Métodos que retornam cadeias de caracteres

A tabela a seguir lista vários métodos úteis que retornam novos objetos de cadeia de caracteres.

Nome do método Use
String.Format Cria uma cadeia de caracteres formatada de um conjunto de objetos de entrada.
String.Concat Cria cadeias de caracteres de duas ou mais cadeias de caracteres.
String.Join Cria uma nova cadeia de caracteres combinando uma matriz de cadeias de caracteres.
String.Insert Cria uma nova cadeia de caracteres inserindo uma cadeia de caracteres no índice especificado de uma cadeia de caracteres existente.
String.CopyTo Copia caracteres especificados de uma cadeia de caracteres para uma posição especificada em uma matriz de caracteres.

Formatar

Você pode usar o método String.Format para criar cadeias de caracteres formatadas e concatenar cadeias de caracteres que representam vários objetos. Este método converte automaticamente qualquer objeto passado em uma cadeia de caracteres. Por exemplo, se seu aplicativo precisar exibir um valor Int32 e um valor DateTime para o usuário, você pode facilmente criar uma cadeia de caracteres para representar esses valores usando o método Format. Para obter informações sobre as convenções de formatação usadas com esse método, consulte a seção sobre formatação de composição.

O exemplo a seguir usa o método Format para criar uma cadeia de caracteres que usa uma variável de inteiro.

int numberOfFleas = 12;
string miscInfo = String.Format("Your dog has {0} fleas. " +
                                "It is time to get a flea collar. " +
                                "The current universal date is: {1:u}.",
                                numberOfFleas, DateTime.Now);
Console.WriteLine(miscInfo);
// The example displays the following output:
//       Your dog has 12 fleas. It is time to get a flea collar.
//       The current universal date is: 2008-03-28 13:31:40Z.
Dim numberOfFleas As Integer = 12
Dim miscInfo As String = String.Format("Your dog has {0} fleas. " & _
                                       "It is time to get a flea collar. " & _
                                       "The current universal date is: {1:u}.", _
                                       numberOfFleas, Date.Now)
Console.WriteLine(miscInfo)
' The example displays the following output:
'       Your dog has 12 fleas. It is time to get a flea collar. 
'       The current universal date is: 2008-03-28 13:31:40Z.

Neste exemplo, DateTime.Now exibe a data e hora atuais da maneira especificada pela cultura associada ao thread atual.

Concat

O método String.Concat pode ser usado para criar facilmente um novo objeto de cadeia de caracteres de dois ou mais objetos existentes. Ele fornece uma maneira independente da linguagem para concatenar cadeias de caracteres. Este método aceita qualquer classe derivada de System.Object. O exemplo a seguir cria uma cadeia de caracteres de dois objetos de cadeia de caracteres existentes e um caractere de separação.

string helloString1 = "Hello";
string helloString2 = "World!";
Console.WriteLine(String.Concat(helloString1, ' ', helloString2));
// The example displays the following output:
//      Hello World!
Dim helloString1 As String = "Hello"
Dim helloString2 As String = "World!"
Console.WriteLine(String.Concat(helloString1, " "c, helloString2))
' The example displays the following output:
'      Hello World!

Join

O método String.Join cria uma nova cadeia de caracteres a partir de uma matriz de cadeias de caracteres e uma cadeia de caracteres de separador. Esse método é útil se você quiser concatenar várias cadeias de caracteres fazendo uma lista, talvez separada por vírgula.

O exemplo a seguir usa um espaço para associar uma matriz de cadeias de caracteres.

string[] words = {"Hello", "and", "welcome", "to", "my" , "world!"};
Console.WriteLine(String.Join(" ", words));
// The example displays the following output:
//      Hello and welcome to my world!
Dim words() As String = {"Hello", "and", "welcome", "to", "my", "world!"}
Console.WriteLine(String.Join(" ", words))
' The example displays the following output:
'      Hello and welcome to my world!

Inserir

O método String.Insert cria uma nova cadeia de caracteres inserindo uma cadeia de caracteres em uma posição especificada em outra cadeia de caracteres. Este método usa um índice baseado em zero. O exemplo a seguir insere uma cadeia de caracteres na quinta posição do índice de MyString e cria uma nova cadeia de caracteres com esse valor.

string sentence = "Once a time.";
 Console.WriteLine(sentence.Insert(4, " upon"));
 // The example displays the following output:
 //      Once upon a time.
Dim sentence As String = "Once a time."
Console.WriteLine(sentence.Insert(4, " upon"))
' The example displays the following output:
'      Once upon a time.

CopyTo

O método String.CopyTo copia partes de uma cadeia de caracteres em uma matriz de caracteres. Você pode especificar o índice inicial da cadeia de caracteres e o número de caracteres a serem copiados. Este método usa o índice de origem, uma matriz de caracteres, o índice de destino e o número de caracteres a serem copiados. Todos os índices são baseados em zero.

O exemplo a seguir usa o método CopyTo para copiar os caracteres da palavra "Hello" de um objeto de cadeia de caracteres para a primeira posição de índice de uma matriz de caracteres.

string greeting = "Hello World!";
char[] charArray = {'W','h','e','r','e'};
Console.WriteLine("The original character array: {0}", new string(charArray));
greeting.CopyTo(0, charArray,0 ,5);
Console.WriteLine("The new character array: {0}", new string(charArray));
// The example displays the following output:
//       The original character array: Where
//       The new character array: Hello
Dim greeting As String = "Hello World!"
Dim charArray() As Char = {"W"c, "h"c, "e"c, "r"c, "e"c}
Console.WriteLine("The original character array: {0}", New String(charArray))
greeting.CopyTo(0, charArray, 0, 5)
Console.WriteLine("The new character array: {0}", New String(charArray))
' The example displays the following output:
'       The original character array: Where
'       The new character array: Hello

Confira também