jueves, 25 de mayo de 2017

USO DE LAS CADENAS

Las cadenas de caracteres (también llamadas cadenas o strings) son un tipo particular de vectores, que como su nombre lo dice son vectores de char, con la particularidad que tienen una marca en el fin del (el caracter '\0'), además el lenguaje nos permite escribirlas como texto dentro de comillas dobles si son simples no. Veamos unos ejemplos de su declaración:
char cadena_hola[]="Hola";
char otro_hola[]={'H','o','l','a','\0'}; // Igual al anterior
char vector[]={'H','o','l','a'}; /* Un vector de 4 elementos,
con los elementos 'H','o','l' y 'a' */
char espacio_cadena[1024]="Una cadena en C";
char cadena_vacia[]="";

Las utilizamos por ejemplo, cuando necesitamos mandarle mensajes al usuario. Sin embargo, las cadenas tienen mucha más funcionalidad que eso. Si necesitamos guardar cualquier información de tipo alfanumérica las podemos utilizar. También son utilizadas para guardar nombres, direcciones, etcétera.
Para poder utilizar cadenas necesitamos hacer uso de la clase String, que nos da todo lo necesario para poder

trabajar con ellas. En su interior la cadena se guarda como una colección y
cada carácter es un elemento. En este capítulo aprenderemos a utilizarlas y
conoceremos los métodos más importantes.



Como declarar la cadena


Declarar una cadena es muy sencillo. De hecho, ya lo hemos llevado a cabo varias veces. Cuando necesitamos declararla, creamos una instancia de la clase String y le asignamos el valor que contendrá. Este valor deberá estar colocado entre comillas. Podemos declarar la variable y asignarle una cadena vacía.
En este caso la variable miCadena contendrá la frase “Hola a todos” y la variable dato contendría una cadena vacía.

Siempre representaremos las cadenas entre comillas. Podemos imaginarlas como se muestra en la Figura 1. Esto hace fácil poder visualizarlas y entender las operaciones que podemos realizar sobre ellas.
El método ToString()
Un método común para muchas clases que existen en C# y .NET es ToString(). Éste es usado para convertir el tipo de dato o su representación a una cadena y es muy útil cuando necesitamos desplegar esa información para que el usuario la pueda leer.
Para darles formato a valores numéricos
Al igual que con la información

de la fecha y hora, es posible darles formato a los valores numéricos que

deseemos mostrar. Para éstos también tendremos una serie de especificadores que

podemos utilizar.

Cuando especificamos un formato podemos tener diferentes

secciones. Por ejemplo, podemos utilizar un formato en particular para cuando
los números sean positivos y otro formato para cuando los números sean
negativos. Estas secciones se separan por medio del carácter ;.


Si usamos dos secciones, el formato colocado en la

primera será utilizado para los números positivos y el cero. El formato que
coloquemos en la segunda sección será el que se utilizará para los números
negativos. En el caso que definamos tres secciones, el formato colocado en la

primera sección será utilizado para los números positivos.

Como concatenar cadenas
Otra de las manipulaciones que podemos hacer es la concatenación, que en C# a diferencia de otros lenguajes es muy natural e intuitiva. Esto se debe a que podemos utilizar una función especializada para esto o aprovechar la sobrecarga del operador + para la clase String. Si deseamos llevar a cabo la concatenación por medio del operador +
Uso de StringBuilder
StringBuilder es una clase que provee .NET y podemos utilizar con C#. Nos permite construir cadenas de forma eficiente y a su vez podemos utilizarla en lugar de las concatenaciones si fuera necesario. Aquí sólo veremos los métodos más importantes. Invitamos a los lectores a investigar el resto de los métodos con la ayuda de MSDN. Su constructor tiene varias versiones. Podemos utilizar el constructor de default que no necesita de ningún parámetro. Hay una versión en la que podemos pasar como parámetro una cadena con la que podemos inicializar el objeto StringBuilder.
La clase tiene varias propiedades que podemos usar, como la propiedad Capacity, que nos indica la capacidad actual, que puede o no ser igual a la cantidad de caracteres que tenemos guardados en su interior, aunque generalmente será mayor.
Comparación

de cadenas

En algunas de nuestras aplicaciones es posible que lleguemos

a necesitar llevar a cabo una comparación entre algunas cadenas. Esto nos puede
servir para determinar si una cadena en especial ha sido introducida por el
alfabéticamente una serie de cadenas que nosotros seleccionemos, o también,
usuario. Pero la comparación también nos puede ayudar a organizar
mayor, igual o menor que otra.

simplemente para resolver algún problema que requiera saber si una cadena es



La comparación de cadenas es una herramienta muy importante

para solucionar diversos problemas y lograr resultados que de otra forma serían

muy complejos.



La clase String nos

da el método Compare(). Este método es

estático, por lo que podemos hacer uso de éste sin necesidad de declarar un

objeto de tipo String. El método

necesitará dos parámetros, que son las cadenas a comparar. Los llamaremos en

nuestro ejemplo Cadena1 y Cadena2. El método regresará luego del análisis,
un valor entero y el valor de este entero será el que se encargue de indicarnos
la relación que existe entre las cadenas que acabamos de comparar.



Si el valor regresado es igual

a 0, esto significa que Cadena1 y Cadena2 son

iguales. En el caso de que el valor sea menor que 0,

es decir, un número negativo, Cadena1 es

menor que Cadena2. Si se recibe un

número mayor que 0 significa que Cadena1 es mayor que Cadena2.
Para

encontrar una subcadena

La cadena puede contener una frase con muchas palabras y
para algunas aplicaciones necesitamos saber si determinada palabra se encuentra
en esa cadena. Es decir que buscaremos una subcadena
adentro de otra cadena. Esta subcadena es una cadena que queremos saber si
se encuentra en la cadena principal.

Esto puede servirnos en búsquedas o cuando necesitamos

llevar a cabo determinada lógica si se encuentra una palabra o frase en

particular. El método que usaremos se llama Contains() y debe ser invocado por la

cadena a la que se le realizará la búsqueda. Esto es importante y no debemos

olvidarlo ya que la invocación de Contains()

en la cadena incorrecta nos puede llevar a
errores de lógica


No hay comentarios:

Publicar un comentario