Vytváření nových řetězců v .NET

.NET umožňuje vytváření řetězců pomocí jednoduchého přiřazení a také přetěžuje konstruktor třídy pro podporu vytváření řetězců pomocí řady různých parametrů. .NET také poskytuje několik metod ve System.String třídě, které vytvářejí nové řetězcové objekty kombinací několika řetězců, polí řetězců nebo objektů.

Vytváření řetězců pomocí přiřazení

Nejjednodušší způsob, jak vytvořit nový String objekt, je jednoduše přiřadit řetězcový literál k objektu String .

Vytváření řetězců pomocí konstruktoru třídy

Přetížení konstruktoru String třídy můžete použít k vytvoření řetězců z pole znaků. Můžete také vytvořit nový řetězec duplikováním konkrétního znaku zadaného počtu.

Metody vracející řetězce

Následující tabulka uvádí několik užitečných metod, které vracejí nové objekty řetězců.

Název metody Používání
String.Format Vytvoří formátovaný řetězec ze sady vstupních objektů.
String.Concat Vytvoří řetězce ze dvou nebo více řetězců.
String.Join Vytvoří nový řetězec zkombinováním pole řetězců.
String.Insert Vytvoří nový řetězec vložením řetězce do zadaného indexu existujícího řetězce.
String.CopyTo Zkopíruje zadané znaky v řetězci do zadané pozice v poli znaků.

Formát

Pomocí metody String.Format můžete vytvořit formátované řetězce a zřetězení řetězců představujících více objektů. Tato metoda automaticky převede všechny předané objekty na řetězec. Pokud například aplikace musí uživateli zobrazit hodnotu Int32 a hodnotu DateTime , můžete snadno vytvořit řetězec, který bude představovat tyto hodnoty pomocí metody Format . Informace o konvencích formátování používaných s touto metodou najdete v části o složeného formátování.

Následující příklad používá Format metoda k vytvoření řetězce, který používá celočíselnou proměnnou.

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.

V tomto příkladuDateTime.Now zobrazí aktuální datum a čas způsobem určeným jazykovou verzí přidruženou k aktuálnímu vláknu.

Concat

Metodu String.Concat lze použít k snadnému vytvoření nového objektu řetězce ze dvou nebo více existujících objektů. Poskytuje jazykově nezávislý způsob zřetězení řetězců. Tato metoda přijímá všechny třídy, které jsou odvozeny ze System.Object. Následující příklad vytvoří řetězec ze dvou existujících objektů řetězce a oddělující znak.

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!

Připojení

Metoda String.Join vytvoří nový řetězec z pole řetězců a oddělovač řetězce. Tato metoda je užitečná, pokud chcete zřetězení více řetězců dohromady, vytvoření seznamu možná oddělené čárkou.

Následující příklad používá mezeru k vytvoření vazby pole řetězců.

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!

Vložit

Metoda String.Insert vytvoří nový řetězec vložením řetězce do zadané pozice v jiném řetězci. Tato metoda používá index založený na nule. Následující příklad vloží řetězec do páté pozice indexu MyString a vytvoří nový řetězec s touto hodnotou.

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

Metoda String.CopyTo kopíruje části řetězce do pole znaků. Můžete zadat počáteční index řetězce i počet znaků, které se mají zkopírovat. Tato metoda přebírá zdrojový index, pole znaků, cílový index a počet znaků, které se mají zkopírovat. Všechny indexy jsou založené na nule.

Následující příklad používá Metodu CopyTo ke zkopírování znaků slova "Hello" z objektu řetězce na první pozici indexu pole znaků.

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

Viz také