StringInfo.GetTextElementEnumerator Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve um enumerador que itera através dos elementos de texto de uma cadeia.
Sobrecargas
| Name | Description |
|---|---|
| GetTextElementEnumerator(String) |
Devolve um enumerador que itera através dos elementos de texto de toda a cadeia. |
| GetTextElementEnumerator(String, Int32) |
Devolve um enumerador que itera pelos elementos de texto da cadeia, começando no índice especificado. |
GetTextElementEnumerator(String)
Devolve um enumerador que itera através dos elementos de texto de toda a cadeia.
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
Parâmetros
- str
- String
A cadeia para iterar.
Devoluções
A TextElementEnumerator para toda a corda.
Exceções
str é null.
Exemplos
O exemplo seguinte demonstra chamar o GetTextElementEnumerator método. Este exemplo faz parte de um exemplo mais amplo fornecido à StringInfo turma.
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
Observações
.NET define um elemento de texto como uma unidade de texto que é apresentada como um único carácter, ou seja, um grafema. Um elemento de texto pode ser um carácter base, um par substituto ou uma sequência combinativa de caracteres. A Norma Unicode define um par substituto como uma representação codificada de caracteres para um único carácter abstrato que consiste numa sequência de duas unidades de código, onde a primeira unidade do par é um substituto alto e a segunda é um substituto baixo. O Padrão Unicode define uma sequência de caracteres combinados como uma combinação de um carácter base e um ou mais caracteres combinados. Um par substituto pode representar um carácter base ou um carácter combinado.
O enumerador de elementos de texto é usado apenas para ler dados na cadeia; não pode modificar a corda subjacente. O enumerador não tem acesso exclusivo à cadeia.
O enumerador está em estado inválido se estiver posicionado antes do primeiro elemento de texto da cadeia ou depois do último elemento de texto da cadeia. Quando o enumerador está num estado inválido, chamar Current lança uma exceção.
Inicialmente, o enumerador é posicionado antes do primeiro elemento de texto na cadeia. Reset também traz o recenseador de volta a esta posição. Portanto, após a criação de um enumerador ou depois Reset de ser chamado, MoveNext deve ser chamado para avançar o enumerador para o primeiro elemento de texto da cadeia antes de ler o valor de Current.
Current devolve o mesmo objeto até que qualquer MoveNext ou Reset seja chamado.
Depois de passar o fim da cadeia, o enumerador volta a estar num estado inválido e a chamada MoveNext retorna false. A chamada Current lança uma exceção se a última chamada for MoveNext retornada false.
Ver também
Aplica-se a
GetTextElementEnumerator(String, Int32)
Devolve um enumerador que itera pelos elementos de texto da cadeia, começando no índice especificado.
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
Parâmetros
- str
- String
A cadeia para iterar.
- index
- Int32
O índice baseado em zero para começar a iterar.
Devoluções
A TextElementEnumerator para a cadeia que começa em index.
Exceções
str é null.
index está fora do intervalo de índices válidos para str.
Observações
.NET define um elemento de texto como uma unidade de texto que é apresentada como um único carácter, ou seja, um grafema. Um elemento de texto pode ser um carácter base, um par substituto ou uma sequência combinativa de caracteres. A Norma Unicode define um par substituto como uma representação codificada de caracteres para um único carácter abstrato que consiste numa sequência de duas unidades de código, onde a primeira unidade do par é um substituto alto e a segunda é um substituto baixo. O Padrão Unicode define uma sequência de caracteres combinados como uma combinação de um carácter base e um ou mais caracteres combinados. Um par substituto pode representar um carácter base ou um carácter combinado.
O enumerador de elementos de texto é usado apenas para ler dados na cadeia; não pode modificar a corda subjacente. O enumerador não tem acesso exclusivo à cadeia.
O enumerador está em estado inválido se estiver posicionado antes do primeiro elemento de texto da cadeia ou depois do último elemento de texto da cadeia. Quando o enumerador está num estado inválido, chamar Current lança uma exceção.
Inicialmente, o enumerador é posicionado antes do primeiro elemento de texto na cadeia. Reset também traz o recenseador de volta a esta posição. Portanto, após a criação de um enumerador ou depois Reset de ser chamado, MoveNext deve ser chamado para avançar o enumerador para o primeiro elemento de texto da cadeia antes de ler o valor de Current.
Current devolve o mesmo objeto até que qualquer MoveNext ou Reset seja chamado.
Depois de passar o fim da cadeia, o enumerador volta a estar num estado inválido e a chamada MoveNext retorna false. A chamada Current lança uma exceção se a última chamada for MoveNext retornada false.