Vytváření nových řetězců
Rozhraní .NET Framework umožňuje vytvoření řetězců pomocí jednoduchého přiřazení a také přetěžuje konstruktor třídy pro podporu vytvoření řetězců pomocí několika různých parametrů. Rozhraní .NET Framework také poskytuje několik metod třídy System.String, které vytvářejí nový objekt řetězce sloučením několika řetězců, polí řetězců nebo objektů.
Vytváření řetězců pomocí přiřazení
Nejjednodušší způsob jak vytvořit nový objekt String je objektu String přiřadit řetězcový literál.
Vytváření řetězců pomocí konstruktoru třídy
Můžete použít přetížení konstruktoru třídy String pro vytvoření řetězce z pole znaků. Můžete také vytvořit nový řetězec pomocí duplikování určitého znaku zadaným počtem krát.
Metody vracející řetězce
V následující tabulce je uvedeno několik užitečných metod, které vracejí nové objekty řetězce.
Název metody |
Pomocí |
---|---|
Vytvoří formátovaný řetězec z množiny vstupních objektů. |
|
Vytvoří řetězce ze dvou nebo více řetězců. |
|
Vytvoří nový řetězec kombinováním pole řetězců. |
|
Vytvoří nový řetězec vložením řetězce na určitý index již existujícího řetězce. |
|
Kopíruje zadané znaky řetězce na určenou pozici v poli znaků. |
Formát
Můžete použít metodu String.Format pro vytvoření formátovaných řetězců a zřetězení řetězců představující více objektů. Libovolný objekt předaný této metodě je automaticky převeden na řetězec. Například pokud aplikace vyžaduje zobrazení hodnoty Int32 a hodnoty DateTime uživateli, můžete snadno sestavit řetězec představující tyto hodnoty pomocí metody Format. Informace o konvencích formátování použitého touto metodou naleznete v oddílu o složeném formátování.
V následujícím příkladu je použita metoda Format pro vytvoření řetězce, který používá celočíselnou proměnnou.
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.
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.
V tomto příkladu DateTime.Now zobrazí aktuální datum a čas způsobem určeným jazykovou verzí spojenou s aktuálním vláknem.
Concat
Metoda String.Concat může být použita pro snadné vytvoření nového objektu řetězce ze dvou nebo více existujících objektů. Umožňuje zřetězení řetězců, které je nezávislé na jazyce. Tato metoda přijímá libovolnou třídu, která je odvozena ze System.Object. Následující příklad vytvoří řetězec ze dvou existujících objektů řetězce a dělícího znaku.
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!
string helloString1 = "Hello";
string helloString2 = "World!";
Console.WriteLine(String.Concat(helloString1, ' ', helloString2));
// The example displays the following output:
// Hello World!
Join
Metoda String.Join vytvoří nový řetězec z pole řetězců a oddělovacího řetězce. Tato metoda je užitečná chcete-li zřetězit více řetězců dohromady pro vytvoření seznamu odděleného například čárkou.
Následující příklad používá mezeru pro spojení pole řetězců.
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!
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!
Vložení
Metoda String.Insert vytvoří nový řetězec vložením řetězce na určenou pozici v jiném řetězci. Tato metoda používá index počítaný od nuly. Následující příklad vloží řetězec na pátou indexovou pozici MyString a vytvoří nový řetězec s touto hodnotou.
Dim sentence As String = "Once a time."
Console.WriteLine(sentence.Insert(4, " upon"))
' The example displays the following output:
' Once upon a time.
string sentence = "Once a time.";
Console.WriteLine(sentence.Insert(4, " upon"));
// The example displays the following output:
// Once upon a time.
CopyTo
Metoda String.CopyTo zkopíruje části řetězce do pole znaků. Můžete zadat jak počáteční index řetězce tak počet znaků, které mají být zkopírovány. Tato metoda přebírá zdrojový index, pole znaků, cílový index a počet znaků ke zkopírování. Všechny indexy jsou počítány od nuly.
V následujícím příkladu je použita metoda CopyTo pro zkopírování znaků slova "Hello" z objektu řetězce na první indexovou pozici pole znaků.
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
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