Manipular Texto En C#
Una cadena de texto no es más que una secuencia de caracteres. C# las representa externamente como objetos de un tipo de dato string, que no es más que un alias deltipo System.String de la BCL.
Las cadenas de texto suelen crearse a partir literales de cadena o de otras cadenas previamente creadas. Ejemplos de ambos casos se muestran a continuación: string cadena1 = "José Antonio";
string cadena2 = cadena1; |
En el primer caso se ha creado un objeto string que representa a la cadena formada por la secuencia de caracteres José Antonioindicada literalmente (nótese que las comillas dobles entre las que se encierran los literales de cadena no forman parte del contenido de la cadena que representan sino que sólo se usan comodelimitadores de la misma) En el segundo caso la variable cadena2 creada se genera a partir de la variable cadena1 ya existente, por lo que ambas variables apuntarán al mismo objeto en memoria.
Hay quetener en cuenta que el tipo string es un tipo referencia, por lo que en principio la comparación entre objetos de este tipo debería comparar sus direcciones de memoria como pasa con cualquier tiporeferencia. Sin embargo, si ejecutamos el siguiente código veremos que esto no ocurre en el caso de las cadenas:
using System; public class IgualdadCadenas
{
publicstatic void Main()
{
string cadena1 = "José Antonio";
string cadena2 = String.Copy(cadena1);
Console.WriteLine(cadena1==cadena2);
}
} |
El método Copy() de laclase String usado devuelve una copia del objeto que se le pasa como parámetro. Por tanto, al ser objetos diferentes se almacenarán en posiciones distintas de memoria y al compararlos deberíadevolverse false como pasa con cualquier tipo referencia. Sin embargo, si ejecuta el programa verá que lo que se obtiene es precisamente lo contrario: true. Esto se debe a que para hacer para hacer más intuitivo el...
Regístrate para leer el documento completo.