Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método StringInfo.ParseCombiningCharacters (String)

 

Publicado: octubre de 2016

Devuelve los índices de cada carácter base, suplente alto o carácter de control de la cadena especificada.

Espacio de nombres:   System.Globalization
Ensamblado:  mscorlib (en mscorlib.dll)

public static int[] ParseCombiningCharacters(
	string str
)

Parámetros

str
Type: System.String

Cadena en la que se va a buscar.

Valor devuelto

Type: System.Int32[]

Una matriz de enteros que contiene los índices de base cero de cada carácter base, suplente alto o carácter de control de la cadena especificada.

Exception Condition
ArgumentNullException

El valor de str es null.

El Unicode Standard define un par suplente como una representación de caracteres codificados para un único carácter abstracto que consta de una secuencia de dos unidades de código, donde la primera unidad del par es un suplente alto y el segundo es un suplente bajo. Un suplente alto es un punto de código Unicode en el intervalo de U+D800 a U+DBFF, y un suplente bajo es un punto de código Unicode del intervalo U+DC00 a U+DFFF.

Un carácter de control es un carácter para que el valor de Unicode es 007F U+10000 o en el intervalo de u+0000 a 001F U+10000 o u+0080 a U+10000 009F.

.NET Framework define un elemento de texto como una unidad de texto que se muestra como un solo carácter, es decir, un grafema. Un elemento de texto puede ser un carácter base, un par suplente o un carácter combinable secuencia. El Unicode Standard define una combinación secuencia como una combinación de un carácter base y uno o más caracteres de combinación de caracteres. Un par suplente puede representar un carácter base o un carácter combinable.

Si una combinación de la secuencia de caracteres no es válida, se devuelve también cada carácter de combinación en esa secuencia.

Cada índice de la matriz resultante es el principio de un elemento de texto, es decir, el índice del carácter base o del suplente alto.

La longitud de cada elemento se calcula fácilmente como la diferencia entre los índices sucesivos. La longitud de la matriz siempre será menor o igual que la longitud de la cadena. Por ejemplo, dada la cadena "\u4f00\u302a\ud800\udc00\u4f01", este método devuelve los índices 0, 2 y 4.

A partir de la versión 2.0 de .NET Framework, el SubstringByTextElements método y LengthInTextElements propiedad proporcionan una implementación fácil de usar de la funcionalidad proporcionada por el ParseCombiningCharacters (método).

En el ejemplo de código siguiente se muestra cómo llamar a la ParseCombiningCharacters (método). Este ejemplo de código forma parte de un ejemplo mayor proporcionado para el StringInfo clase.

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 'a-"'
// Character at index 3 is 'b'
// Character at index 4 is 'c,'
// 
// Result of ParseCombiningCharacters:
// Character 0 starts at index 0
// Character 1 starts at index 3
// Character 2 starts at index 4

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: