jueves, 29 de agosto de 2013

Caracteres y Cadenas de Caracteres en C# - Parte 1

Tabla de Contenido

0. Introducción
1. El Tipo de Dato Char
1.1 Secuencias de Escape
1.2 Conversiones Char
1.3 Ejemplos
2. Conclusiones
3. Glosario
4. Referencias

0. Introducción

Voy a dedicar esta primera parte para hablar acerca de algunas construcciones que permiten manipular datos en forma de caracteres (unidad básica) y cadenas de caracteres. También las operaciones asociadas a estos tipos de datos esenciales para manipular entrada y salida de datos, representación de valores especiales de acuerdo a la plataforma adyacente, los aspectos regionales (idioma y sus variaciones, por ejemplo).

Es importante que conozcamos y comprendamos la utilidad de los caracteres y las cadenas formadas de estas unidades para el diseño de algoritmos que utilicen eficientemente el espacio en memoria y los ciclos de la unidad de procesamiento. También que conozcamos algunos aspectos que pueden hacer que nuestras aplicaciones sean o no eficientes por el uso de los recursos disponibles en el cómputo adyacente.

1. El Tipo de Dato char

El tipo de dato char ocupa dos bytes (es decir, 16 bits) para codificar, representar, y manipulación  cualquier caracter del juego de caracteres de Unicode [1]. En Framework .NET, el alias para este tipo es System.Char [2]. En C#, en particular, un caracter de tipo char se representa encerrando el caracter en cuestión entre comillas simples; así:

char c = 'A'; // El caracter representado en un dato tipo char

1.1 Secuencias de Escape

Este es un conjunto especial de caracteres que ayudan a representar comodines (por así decirlo) o construcciones literales para elementos de representación o formateo de texto. Comúnmente, el carácter de tabulación horizontal y vertical, de nueva o salto de línea, backspace (remoción de caracter a la izquierda), entre otros más.

Para especificar una secuencia de escape basta con añadir un backslash (\) y el caracter correspondiente de significado particular.

char nuevaLinea = '\n';
char backSlash = '\\';

En la Tabla 1 [3] se presenta el conjunto de secuencias de espcape en el lenguaje de programación C#:
Tabla 1. Secuencias de Escape.
Tabla 1. Secuencias de Escape.
Gracias a que el tipo de dato char nos permite representar cualquier caracter Unicode; las secuencias de escape \u (o también \x) nos permite especificar un caracter Unicode por medio de los cuatro dígitos de código hexadecimal. Así:

char simboloCopyright = '\u00A9';
char simboloOmega = '\u03A9';
char nuevaLinea = '\u000A';

1.2 Conversiones Char

Todas las conversiones de char a cualquier tipo de dato numérico son permitidas siempre y cuando estos últimos soporten el tipo short sin signo (es decir, ushort).

char c = 'A'; // El caracter representado en un dato tipo char
char caracterEnInt = c; // conversión implícita permitada
char caracterEnByte = c; // conversión implícita no permitida (no es posible convertir de char a byte).

1.3 Algunos Ejemplos

En este primer ejemplo (LiteralCaracter), se define la variable tipo char c (línea 5) y se asigna el caracter 's' al espacio de memoria localizado de esta variable (que es el elemento número 5 de la cadena de caracteres "perls"):

Archivo C# LiteralCaracter.cs [enlace alternativo]:

2. Conclusiones

En esta primera parte de Caracteres y Cadenas de Caracteres en C# hemos entendido la utilidad del tipo de dato char idóneo para representar (en 16 bits) caracteres individuales de la codificación Unicode. Se incluyeron ejemplos sobre el uso básico de este tipo de datos. Anteriormente, también se habló acerca de las secuencias de escape que son construcciones o comodines para representar caracteres especiales (tabulación, retorno de carro, backspace, entre otro más).

3. Glosario

- Secuencia de escape
- Unicode

4. Referencias

[1] Unicode - Wikipedia, the free encyclopedia - http://en.wikipedia.org/wiki/Unicode
[4] C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.


O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.