StringInfo.GetTextElementEnumerator Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí enumerátor, který iteruje textovými prvky řetězce.
Přetížení
| Name | Description |
|---|---|
| GetTextElementEnumerator(String) |
Vrátí enumerátor, který iteruje textovými prvky celého řetězce. |
| GetTextElementEnumerator(String, Int32) |
Vrátí enumerátor, který iteruje textovými prvky řetězce počínaje zadaným indexem. |
GetTextElementEnumerator(String)
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
Vrátí enumerátor, který iteruje textovými prvky celého řetězce.
public:
static System::Globalization::TextElementEnumerator ^ GetTextElementEnumerator(System::String ^ str);
public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str);
static member GetTextElementEnumerator : string -> System.Globalization.TextElementEnumerator
Public Shared Function GetTextElementEnumerator (str As String) As TextElementEnumerator
Parametry
- str
- String
Řetězec, který se má iterovat.
Návraty
A TextElementEnumerator pro celý řetězec.
Výjimky
str je null.
Příklady
Následující příklad ukazuje volání GetTextElementEnumerator metoda. Tento příklad je součástí většího příkladu poskytnutého StringInfo pro třídu.
using System;
using System.Text;
using System.Globalization;
public sealed class App {
static void Main() {
// The string below contains combining characters.
String s = "a\u0304\u0308bc\u0327";
// Show each 'character' in the string.
EnumTextElements(s);
// Show the index in the string where each 'character' starts.
EnumTextElementIndexes(s);
}
// Show how to enumerate each real character (honoring surrogates) in a string.
static void EnumTextElements(String s) {
// This StringBuilder holds the output results.
StringBuilder sb = new StringBuilder();
// Use the enumerator returned from GetTextElementEnumerator
// method to examine each real character.
TextElementEnumerator charEnum = StringInfo.GetTextElementEnumerator(s);
while (charEnum.MoveNext()) {
sb.AppendFormat(
"Character at index {0} is '{1}'{2}",
charEnum.ElementIndex, charEnum.GetTextElement(),
Environment.NewLine);
}
// Show the results.
Console.WriteLine("Result of GetTextElementEnumerator:");
Console.WriteLine(sb);
}
// Show how to discover the index of each real character (honoring surrogates) in a string.
static void EnumTextElementIndexes(String s) {
// This StringBuilder holds the output results.
StringBuilder sb = new StringBuilder();
// Use the ParseCombiningCharacters method to
// get the index of each real character in the string.
Int32[] textElemIndex = StringInfo.ParseCombiningCharacters(s);
// Iterate through each real character showing the character and the index where it was found.
for (Int32 i = 0; i < textElemIndex.Length; i++) {
sb.AppendFormat(
"Character {0} starts at index {1}{2}",
i, textElemIndex[i], Environment.NewLine);
}
// Show the results.
Console.WriteLine("Result of ParseCombiningCharacters:");
Console.WriteLine(sb);
}
}
// This code produces the following output:
//
// Result of GetTextElementEnumerator:
// Character at index 0 is 'ā̈'
// Character at index 3 is 'b'
// Character at index 4 is 'ç'
//
// Result of ParseCombiningCharacters:
// Character 0 starts at index 0
// Character 1 starts at index 3
// Character 2 starts at index 4
Imports System.Text
Imports System.Globalization
Public Module Example
Public Sub Main()
' The string below contains combining characters.
Dim s As String = "a" + ChrW(&h0304) + ChrW(&h0308) + "bc" + ChrW(&h0327)
' Show each 'character' in the string.
EnumTextElements(s)
' Show the index in the string where each 'character' starts.
EnumTextElementIndexes(s)
End Sub
' Show how to enumerate each real character (honoring surrogates) in a string.
Sub EnumTextElements(s As String)
' This StringBuilder holds the output results.
Dim sb As New StringBuilder()
' Use the enumerator returned from GetTextElementEnumerator
' method to examine each real character.
Dim charEnum As TextElementEnumerator = StringInfo.GetTextElementEnumerator(s)
Do While charEnum.MoveNext()
sb.AppendFormat("Character at index {0} is '{1}'{2}",
charEnum.ElementIndex,
charEnum.GetTextElement(),
Environment.NewLine)
Loop
' Show the results.
Console.WriteLine("Result of GetTextElementEnumerator:")
Console.WriteLine(sb)
End Sub
' Show how to discover the index of each real character (honoring surrogates) in a string.
Sub EnumTextElementIndexes(s As String)
' This StringBuilder holds the output results.
Dim sb As New StringBuilder()
' Use the ParseCombiningCharacters method to
' get the index of each real character in the string.
Dim textElemIndex() As Integer = StringInfo.ParseCombiningCharacters(s)
' Iterate through each real character showing the character and the index where it was found.
For i As Int32 = 0 To textElemIndex.Length - 1
sb.AppendFormat("Character {0} starts at index {1}{2}",
i, textElemIndex(i), Environment.NewLine)
Next
' Show the results.
Console.WriteLine("Result of ParseCombiningCharacters:")
Console.WriteLine(sb)
End Sub
End Module
' The example displays the following output:
'
' Result of GetTextElementEnumerator:
' Character at index 0 is 'ā̈'
' Character at index 3 is 'b'
' Character at index 4 is 'ç'
'
' Result of ParseCombiningCharacters:
' Character 0 starts at index 0
' Character 1 starts at index 3
' Character 2 starts at index 4
Poznámky
.NET definuje textový prvek jako jednotku textu, která se zobrazí jako jeden znak, tj. grafeme. Textový prvek může být základní znak, náhradní dvojice nebo kombinace sekvence znaků. Standard Unicode definuje náhradní dvojici jako kódovanou znakovou reprezentaci pro jeden abstraktní znak, který se skládá ze sekvence dvou jednotek kódu, kde první jednotka páru je vysoká náhrada a druhá je nízká náhrada. Standard Unicode definuje kombinování sekvence znaků jako kombinaci základního znaku a jednoho nebo více kombinujících znaků. Náhradní dvojice může představovat základní znak nebo kombinační znak.
Enumerátor textového prvku se používá pouze ke čtení dat v řetězci; nemůže změnit základní řetězec. Enumerátor nemá výhradní přístup k řetězci.
Enumerátor je v neplatném stavu, pokud je umístěn před prvním textovým prvkem v řetězci nebo za poslední textový prvek v řetězci. Pokud je enumerátor v neplatném stavu, vyvolá volání Current výjimku.
Na začátku je enumerátor umístěn před prvním textovým prvkem v řetězci. Reset také vrátí enumerátor zpět do této pozice. Proto po vytvoření enumerátoru nebo po Reset zavolání MoveNext musí být volán, aby byl enumerátor před čtením hodnoty Current.
Current vrátí stejný objekt, dokud se nevolá MoveNext nebo Reset nevolá.
Po předání konce řetězce je enumerátor opět v neplatném stavu a volání MoveNext vrátí false. Volání Current vyvolá výjimku, pokud se vrátí falseposlední volání MoveNext .
Viz také
Platí pro
GetTextElementEnumerator(String, Int32)
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
- Zdroj:
- StringInfo.cs
Vrátí enumerátor, který iteruje textovými prvky řetězce počínaje zadaným indexem.
public:
static System::Globalization::TextElementEnumerator ^ GetTextElementEnumerator(System::String ^ str, int index);
public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str, int index);
static member GetTextElementEnumerator : string * int -> System.Globalization.TextElementEnumerator
Public Shared Function GetTextElementEnumerator (str As String, index As Integer) As TextElementEnumerator
Parametry
- str
- String
Řetězec, který se má iterovat.
- index
- Int32
Index založený na nule, na kterém se má zahájit iterace.
Návraty
A TextElementEnumerator pro řetězec začínající na index.
Výjimky
str je null.
index je mimo rozsah platných indexů pro str.
Poznámky
.NET definuje textový prvek jako jednotku textu, která se zobrazí jako jeden znak, tj. grafeme. Textový prvek může být základní znak, náhradní dvojice nebo kombinace sekvence znaků. Standard Unicode definuje náhradní dvojici jako kódovanou znakovou reprezentaci pro jeden abstraktní znak, který se skládá ze sekvence dvou jednotek kódu, kde první jednotka páru je vysoká náhrada a druhá je nízká náhrada. Standard Unicode definuje kombinování sekvence znaků jako kombinaci základního znaku a jednoho nebo více kombinujících znaků. Náhradní dvojice může představovat základní znak nebo kombinační znak.
Enumerátor textového prvku se používá pouze ke čtení dat v řetězci; nemůže změnit základní řetězec. Enumerátor nemá výhradní přístup k řetězci.
Enumerátor je v neplatném stavu, pokud je umístěn před prvním textovým prvkem v řetězci nebo za poslední textový prvek v řetězci. Pokud je enumerátor v neplatném stavu, vyvolá volání Current výjimku.
Na začátku je enumerátor umístěn před prvním textovým prvkem v řetězci. Reset také vrátí enumerátor zpět do této pozice. Proto po vytvoření enumerátoru nebo po Reset zavolání MoveNext musí být volán, aby byl enumerátor před čtením hodnoty Current.
Current vrátí stejný objekt, dokud se nevolá MoveNext nebo Reset nevolá.
Po předání konce řetězce je enumerátor opět v neplatném stavu a volání MoveNext vrátí false. Volání Current vyvolá výjimku, pokud se vrátí falseposlední volání MoveNext .