Exportar (0) Imprimir
Expandir todo

String (Clase)

Representa texto como una serie de caracteres Unicode.

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

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class String : IComparable, ICloneable, IConvertible, 
	IComparable<string>, IEnumerable<string>, IEnumerable, 
	IEquatable<string>
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class String implements IComparable, ICloneable, 
	IConvertible, IComparable<String>, IEnumerable<String>, 
	IEnumerable, IEquatable<String>
SerializableAttribute 
ComVisibleAttribute(true) 
public final class String implements IComparable, ICloneable, 
	IConvertible, IComparable<String>, IEnumerable<String>, 
	IEnumerable, IEquatable<String>

Una cadena es una colección secuencial de caracteres Unicode que se utiliza para representar texto. Un objeto String es una colección secuencial de objetos System.Char que representan una cadena. El valor del objeto String es el contenido de la colección secuencial y ese valor es inmutable.

Un objeto String se denomina inmutable (de sólo lectura) porque no se puede modificar su valor una vez que se ha creado. Los métodos que aparentemente modifican un objeto String devuelven en realidad un nuevo objeto String que contiene la modificación. Si realmente es necesario modificar el contenido de un objeto de tipo cadena, hay que utilizar la clase System.Text.StringBuilder.

Los caracteres Unicode de una cadena se definen mediante un valor escalar Unicode, también denominado punto de código Unicode o valor ordinal (numérico) del carácter Unicode. Los puntos de código se codifican mediante UTF-16 y los valores numéricos de los elementos de la codificación se representan mediante un objeto Char.

Normalmente, un único objeto Char representa un solo punto de código, es decir, el valor numérico de Char equivale al punto de código. Sin embargo, es posible que un punto de código requiera más de un elemento codificado. Por ejemplo, un punto de código adicional de Unicode (un par suplente) se codifica con dos objetos Char.

Índices

Un índice es la posición de un objeto Char en un objeto String, y no un carácter Unicode. Un índice es un número no negativo de base cero que comienza desde la primera posición de la cadena, que es la posición de índice cero. Los valores de índice consecutivos pueden no corresponderse con caracteres Unicode consecutivos, ya que un carácter Unicode puede estar codificado como más de un objeto Char. Para trabajar con cada carácter Unicode en lugar de trabajar con cada objeto Char, se utiliza la clase System.Globalization.StringInfo.

Operaciones ordinales y operaciones dependientes de la cultura

Los miembros de la clase String realizan una operación ordinal o lingüística en un objeto String. Una operación ordinal actúa sobre el valor numérico de cada objeto Char. Una operación lingüística actúa sobre el valor de String teniendo en cuenta el uso de mayúsculas y minúsculas, ordenación, formato y reglas de análisis específicos de la referencia cultural. Las operaciones lingüísticas se ejecutan en el contexto de una referencia cultural explícitamente declarada o de la referencia cultural implícita actual. Para obtener más información sobre la referencia cultural actual, vea el tema CultureInfo.CurrentCulture.

Las reglas de las mayúsculas y minúsculas determinan la forma de cambiar un carácter Unicode de mayúsculas a minúsculas y viceversa.

Las reglas de formato determinan la forma de convertir un valor en su representación de cadena, mientras que las reglas de análisis determinan la forma de convertir una representación de cadena en un valor.

Las reglas de ordenación determinan el orden alfabético de los caracteres Unicode y la forma de comparar dos cadenas entre sí. Por ejemplo, el método Compare realiza una comparación lingüística, mientras que el método CompareOrdinal realiza una comparación ordinal. Como consecuencia, si la referencia cultural actual es el inglés de Estados Unidos, el método Compare considera que "a" es menor que "A", mientras que el método CompareOrdinal considera que "a" es mayor que "A".

.NET Framework admite las reglas de ordenación de palabras, cadenas y ordinales. Una operación de ordenación de palabras realiza una comparación de cadenas donde se tiene en cuenta la referencia cultural y donde ciertos caracteres Unicode no alfanuméricos pueden tener asignados pesos especiales. Por ejemplo, el guión ("-") podría tener asignado un peso muy pequeño, por lo que las cadenas "coop" y "co-op" aparecerían una junto a la otra en una lista ordenada. Una operación de ordenación de cadenas es similar a una operación de ordenación de palabras, con la diferencia de que no hay casos especiales y todos los símbolos no alfanuméricos preceden a todos los caracteres Unicode alfanuméricos.

Una comparación dependiente de la cultura es cualquier comparación que utiliza explícita o implícitamente un objeto CultureInfo, incluida la referencia cultural de todos los idiomas que especifica la propiedad CultureInfo.InvariantCulture. La referencia cultural implícita actual viene especificada por la propiedad Thread.CurrentCulture.

La operación de ordenación de ordinales compara las cadenas basándose en el valor numérico de cada objeto Char de la cadena. La comparación de ordinales distingue automáticamente entre mayúsculas y minúsculas porque las versiones en minúsculas y en mayúsculas de un carácter tienen distintos puntos de código. Sin embargo, si en la aplicación no es importante la distinción entre mayúsculas y minúsculas, se puede especificar una comparación de ordinales que omita dicha distinción. Resulta equivalente a pasar la cadena a mayúsculas utilizando la referencia cultural de todos los idiomas y realizar después una comparación de ordinales con el resultado.

Para obtener más información sobre las reglas de ordenación de palabras, cadenas y ordinales, vea el tema System.Globalization.CompareOptions.

Una comparación dependiente de la cultura normalmente es adecuada para ordenar, al contrario de lo que ocurre con una comparación de ordinales. Por lo común, una comparación de ordinales es adecuada para determinar si dos cadenas son idénticas (esto es, para determinar su igualdad), lo que no sucede con las comparaciones dependientes de la cultura.

En los Comentarios sobre los métodos de búsqueda y comparación se especifica si el método distingue entre mayúsculas y minúsculas y/o es dependiente de la cultura. Por definición, en una comparación todas las cadenas, incluso la cadena vacía (""), son mayores que una referencia null y dos referencias null son iguales entre sí.

Normalización

Algunos caracteres Unicode tienen múltiples representaciones binarias equivalentes que están formadas por conjuntos de caracteres Unicode combinables y/o compuestos. El estándar Unicode define un proceso denominado normalización, que devuelve una representación binaria al proporcionar cualquiera de las representaciones binarias equivalentes de un carácter. La normalización puede realizarse con varios algoritmos, denominados formas de normalización, que cumplen reglas diferentes. .NET Framework admite actualmente las formas de normalización C, D, KC y KD. Un par de cadenas normalizadas se evalúa normalmente con una comparación de ordinales.

Consideraciones de seguridad

Si la aplicación adopta una decisión de seguridad sobre un identificador simbólico, como un nombre de archivo o una canalización con nombre, o sobre los datos conservados, como los basados en texto de un archivo XML, la operación debe utilizar una comparación de ordinales en lugar de una comparación dependiente de la cultura. El motivo es que la comparación dependiente de la cultura puede producir distintos resultados en función de la referencia cultural en vigor, mientras que la comparación de ordinales sólo depende del valor binario de los caracteres comparados.

Funcionalidad

La clase String proporciona miembros para comparar objetos String, devolver el índice de un carácter o una cadena en un objeto String, copiar el valor de un objeto String, dividir una cadena o combinar cadenas, modificar el valor de una cadena, aplicar formato a los números, las fechas y horas o los valores de enumeración en una cadena y normalizar una cadena.

  • Utilice los métodos Compare, CompareOrdinal, CompareTo, Equals, EndsWith y StartsWith para realizar comparaciones.

  • Utilice los métodos IndexOf, IndexOfAny, LastIndexOf y LastIndexOfAny para obtener el índice de una subcadena o un carácter Unicode en una cadena.

  • Para copiar una cadena o subcadena a otra cadena o una matriz de Char, utilice los métodos Copy y CopyTo.

  • Para crear una o varias cadenas nuevas a partir de las partes de una cadena original, utilice los métodos Substring y Split, y para crear una nueva cadena a partir de una o varias subcadenas, utilice los métodos Concat y Join.

  • Para modificar toda una cadena o parte de ella, se utilizan los métodos Insert, Replace, Remove, PadLeft, PadRight, Trim, TrimEnd y TrimStart.

  • Para cambiar los caracteres Unicode de una cadena de mayúsculas a minúsculas y viceversa, utilice los métodos ToLower, ToLowerInvariant, ToUpper y ToUpperInvariant.

  • Utilice Format para reemplazar uno o varios marcadores de posición de elementos de formato en una cadena con la representación de texto de uno o varios valores numéricos, de fecha y hora o de enumeración.

  • Para obtener el número de objetos Char de una cadena se utiliza la propiedad Length y para obtener acceso a los objetos Char reales de una cadena se utiliza la propiedad Chars.

  • Utilice el método IsNormalized para comprobar si una cadena está normalizada en una forma de normalización determinada. Utilice el método Normalize para crear una cadena normalizada en una forma de normalización determinada.

Interfaces implementadas

La clase String implementa las interfaces IComparable, ICloneable, IConvertible, IEnumerable e IComparable. Utilice la clase Convert para las conversiones en lugar de la implementación de miembro de interfaz explícita de IConvertible de este tipo.

Este tipo es seguro para operaciones multiproceso.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft