Está en la página 1de 12

Unidad 4

1 //Escenario
Escenario27
Lectura fundamental
Fundamental

Procesamiento
Etapas de un plan
de de
información
comunicación
estratégica
textual

Contenido

1 Procesamiento de texto

2 El tipo de dato carácter

3 Cadena de caracteres

4 Ejemplo de uso de cadenas

5 Resumen

Palabras clave: algoritmo, programa, Java, carácter, cadena, información textual.


1. Procesamiento de texto
En sus inicios, las computadoras estaban destinadas únicamente a realizar cálculos numéricos
en aplicaciones con fines militares, científicos o contables. Sin embargo, con el rápido desarrollo
tecnológico, y al hacerse asequibles para un gran número de personas, surgieron nuevas aplicaciones
que ya no se limitaban a los números, sino que involucraban almacenar, procesar y comunicar
información en forma de texto. Esta lectura presenta los elementos del lenguaje Java diseñados para
procesar información textual.

En la primera parte se introduce el tipo de dato carácter, el cual es el bloque básico para construir
textos. En la segunda parte se presenta el concepto de cadena de caracteres, el tipo cadena en el
lenguaje Java y sus operaciones básicas. Finalmente, en una última parte se incluyen ejemplos de
procesamiento de texto en Java.

2. El tipo de dato carácter


Un carácter es la unidad mínima de información textual. Puede entenderse un carácter como un
símbolo usado en la forma escrita de un lenguaje, aunque también existen caracteres invisibles que
representan elementos de formato. Ejemplos de caracteres incluyen las letras del alfabeto romano,
mayúsculas (A-Z) y minúsculas (a-z), letras con diacríticos (áàüöñâç), los dígitos (0-9), los signos de
puntuación (!.,;:¿?), símbolos matemáticos (+-*/%), el espacio en blanco( ) y letras de otros alfabetos
. Además de símbolos, el conjunto de caracteres contiene caracteres de control, los cuales

permiten representar elementos del formato del texto. Estos incluyen el fin de línea, el retorno de
carro, el tabulador horizontal, el backspace, entre otros.

2.1. El tipo char

Para hacer referencia al conjunto de datos de tipo carácter, el lenguaje Java incorpora el tipo char
(Oracle Inc., 2015). Cada dato de tipo char es almacenado en 16 bits de la memoria. El número
natural almacenado en estos 16 bits identifica de forma única cada carácter, conforme al estándar de
codificación Unicode (Unicode Inc., 2017).

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 2
Las variables de tipo char son declaradas y les son asignados valores de manera idéntica a las
variables de otros tipos:

char <nombre> = <expresión>;

2.1.1. Literales

Para indicar que un símbolo corresponde a un literal de tipo carácter debe encerrarse en comillas
sencillas: ‘’. Algunos ejemplos son ‘A’, ‘?’, ‘0’, ‘+’, y ‘ ’ (espacio en blanco). Para representar los
caracteres de control se usa como carácter de escape la barra invertida (\). Por ejemplo, el fin de línea
es representado por el literal ‘\n’: en este caso, la barra invertida indica que el carácter es de control
y la n indica que es un fin de línea. La tabla 1 muestra los literales correspondientes a caracteres de
control en el lenguaje Java:

Tabla 1. Literales correspondientes a los caracteres de control en el lenguaje Java

Literal Significado
‘\n’ Fin de línea

‘\r’ Retorno de carro

‘\t’ Tabulador horizontal

‘\b’ Backspace

‘\\’ Barra invertida

‘\’’ Comilla sencilla

‘\”’ Comilla doble

Fuente: elaboración propia

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 3
2.1.2. Operaciones sobre caracteres

Debido a la forma cómo son representados internamente, los caracteres soportan la mayoría de las
operaciones definidas para números enteros. No obstante, con algunos usos excepcionales, la mayoría de
estas no deberían considerarse por ser carentes de significado en el dominio de los caracteres.

Entre las operaciones admitidas por los caracteres se encuentran la suma y la resta con números
enteros. Estas operaciones pueden ser usadas cuando se tiene garantía de que tanto el carácter a
sumar como el resultado pertenecerán a un subconjunto particular de los caracteres. Por ejemplo,
si se suma un 5 al carácter ‘A’ el resultado será el carácter ‘F’, representando el 5 un desplazamiento
de ese número de posiciones sobre el alfabeto. De igual forma, (’m’ - 3) daría como resultado ‘j’. El
resultado de (‘A’ + 80) no tiene interpretación alguna ya que estaría fuera del rango del alfabeto ‘A’-
’Z’ (el resultado es ‘?’).

El siguiente ciclo imprime el alfabeto romano en mayúsculas:

for (char letra = ‘A’; letra <= ‘Z’; letra = (char)(letra + 1))

    System.out.print(letra);

Note que es necesario hacer el casting a char al incrementar letra. Esto se debe a que al sumar un
char y un int el compilador interpreta el valor como int.

El ciclo anterior usa la operación <= para controlar que la variable letra no salga del dominio de las
letras mayúsculas. Más aún, el tipo char acepta las operaciones relacionales: <, <=, >, >=, == y !=.
Las operaciones de orden comparan los códigos Unicode de los caracteres y se garantiza que el orden
entre letras, dígitos y alfabetos similares es el orden tradicional (esto no aplica para comparaciones
entre una letra mayúscula y una minúscula).

3. Cadenas de caracteres
Una cadena es una colección secuencial de caracteres usada para representar información textual.
Una cadena puede ser entendida como un arreglo de caracteres; sin embargo, se trata como un tipo
de dato diferente dada la naturaleza particular del texto. La figura 1 presenta una cadena como un
arreglo de caracteres:

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 4
0 1 2 3 4 5 6 7 8 9
H O L A M U N D O

Tamaño = 10
Índices

Figura 1. Representación en forma de arreglo de una cadena de tamaño 10. Cada carácter se identifica con un índice
único, en el rango de 0 a tamaño – 1
Fuente: elaboración propia

Al igual que los arreglos, la cadena tiene un tamaño, que es el número de caracteres que contiene.
Igualmente, los caracteres en la cadena se encuentran enumerados desde 0 hasta tamaño - 1.

3.1. El tipo de dato String

En el lenguaje Java, el tipo de dato para cadenas es String (Oracle Inc., 2015). Las variables de tipo
String son declaradas y les son asignados valores de manera idéntica a las variables de otros tipos.
Al ser declarada, una variable de tipo String es inicializada con el valor null.

String <nombre> = <expresión>;

3.1.1. Literales

Para indicar que un fragmento de texto corresponde a una cadena y no a código, debe encerrarse
en comillas dobles. De igual forma, si se desean incluir en la cadena saltos de línea, retornos de carro,
tabuladores, comillas o barras invertidas deben usarse los caracteres de control correspondientes.
Por ejemplo, el siguiente literal (que contiene una cita de Hamlet) usa caracteres de control para
incluir comillas y un salto de línea al final de la cadena: “\“La brevedad es el alma del
ingenio.\”\n”. Es posible crear una cadena de tamaño cero, llamada cadena vacía, la cual es de
gran utilidad en múltiples algoritmos como se evidencia en los ejemplos al final de la lectura. Esta cadena es
representada por el literal “”.

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 5
3.1.2. La operación de concatenación

La operación de concatenación une dos cadenas. Por ejemplo, la concatenación de las cadenas
“latino” y “americano” da como resultado la cadena “latinoamericano”. Note
que en esta operación siempre se enlaza el final del primer operando con el inicio del segundo.

La operación de concatenación es representada en Java por el símbolo +:

String cadena = “latino” + “americano”;

El lenguaje Java también acepta que el operador de concatenación se aplique a una pareja de una
cadena y un valor de uno de los tipos primitivos. En este caso, el valor de tipo primitivo es tratado
como cadena para efectuar correctamente la operación. La tabla 2 presenta algunos ejemplos de este
tipo de concatenación y sus correspondientes resultados.

Tabla 2. Ejemplos de concatenación de cadenas y datos de tipo primitivo

Expresión Resultado

“El área es: ” + (15*8) “El área es: 120”

“Quién es” + ‘?’ “Quién es?”

5 + 4 + “ vacas en el establo.” “9 vacas en el establo.”

“Eran ” + 5 + 4 “Eran 54”

“Everything is ” + false “Everything is false”

“Vivió ” + 100 + “años.” “Vivió 100 años.”

Fuente: elaboración propia

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 6
3.1.3. Operaciones relacionales sobre cadenas

Al ser aplicados sobre cadenas, los operadores usuales de comparación (<, >, <=, >=, == y !=) no
tienen el comportamiento esperado. Para comparar cadenas debemos usar los métodos equals y
compareTo del tipo String.

El método equals es invocado por una cadena, la cual es comparada con la cadena dada como
parámetro del método. Si el contenido de las cadenas es idéntico, el método retorna el valor true;
de lo contrario, retorna el valor false. Ejemplo:

if (cadena1.equals(cadena2)) {

             ...

  }

El método compareTo es invocado por una cadena, la cual es comparada con la cadena dada como
parámetro del método. El valor devuelto por el método se determina por las siguientes reglas:

• Si la cadena que le invoca es lexicográficamente menor que la cadena parámetro, el método


retorna un valor negativo.

• Si la cadena que le invoca es lexicográficamente mayor que la cadena parámetro, el método


retorna un valor positivo.

• Si la cadena que le invoca es idéntica a la cadena parámetro, el método retorna 0.

El siguiente ejemplo demuestra el uso del método compareTo:

if (cadena1.compareTo(cadena2) < 0)

             System.out.println(“La primera cadena es menor.”);

else

if (cadena1.compareTo(cadena2) > 0)

      System.out.println(“La primera cadena es mayor.”);

else

System.out.println(“Las cadenas son iguales.”);

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 7
3.1.4. Procesamiento de cadenas como arreglos de caracteres

Al igual que en los arreglos, los caracteres que conforman una cadena pueden ser accedidos
individualmente mediante un conjunto de índices. Sin embargo, hay una diferencia fundamental entre
los dos tipos: las cadenas son inmutables. Esto quiere decir que el contenido de una cadena puede ser
consultado pero no modificado.

Para consultar el carácter en una posición específica de una cadena se usa el método del tipo
String charAt.

<cadena>.charAt(<índice>)

3.1.5. El método length

Para conocer el tamaño de una cadena, el tipo String incluye el método length. Ejemplo:

int tamaño = cadena.length();

4. Ejemplos de uso de cadenas


A continuación se encuentran algunos problemas resueltos para demostrar el uso de cadenas en el
lenguaje Java:

Problema:
Invertir el contenido de una cadena.
Solución:
static String invertir_cadena(String cad) {
  String invertida = “”;
  for (int i = 0; i <= cad.length() - 1; i = i + 1)
        invertida = cad.charAt(i) + invertida;
  return invertida;
}

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 8
Problema:

Quitar los espacios sobrantes al inicio y al final de un texto.

Solución:
static String quitar_espacios_sobrantes(String cad){
  int pos_inicial = 0;
  while (pos_inicial<cad.length() && cad.charAt(pos_inicial)==’ ‘)
    pos_inicial = pos_inicial + 1;
  int pos_final = cad.length() - 1;
  while (pos_final >= 0 && cad.charAt(pos_final) == ‘ ‘)
        pos_final = pos_final - 1;
  String cad_sin_espacios = “”;
  for (int i = pos_inicial; i <= pos_final; i = i + 1)
        cad_sin_espacios = cad_sin_espacios + cad.charAt(i);
  return cad_sin_espacios;
}

Problema:

Calcular el número de palabras en un texto. Suponga que cada pareja de palabras está separada por
exactamente un espacio y que hay al menos una palabra.

Solución:
static int contar_palabras(String cad) {

  int palabras = 0;

  cad = quitar_espacios_sobrantes(cad);

  for (int i = 0; i <= cad.length() - 1; i = i + 1)

        if (cad.charAt(i) == ‘ ‘)

              palabras = palabras + 1;

  return palabras + 1;

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 9
5. Resumen
No todos los programas de computadora tienen como fin procesar datos de tipo numérico. Por el
contrario, muchos de ellos involucran el almacenamiento y procesamiento de información de tipo textual:
procesadores de palabras, aplicaciones de mensajería, navegadores de internet, entre otros.

Un carácter es la unidad mínima de información textual. Un carácter puede corresponder tanto a un


símbolo del alfabeto de algún lenguaje como a un elemento de formato de texto. La palabra reservada para
el tipo de dato carácter en Java es char. Un carácter es representado internamente por un número natural
de 16 bits, de acuerdo con el estándar Unicode. Los literales carácter deben encerrarse en comillas sencillas,
destacándose los caracteres de control ‘\n’, ‘\r’, ‘\t’, ‘\b’, ‘\\’, ‘\”’ y ‘\’’.

Una cadena es una colección secuencial de caracteres usada para representar información textual. La
palabra reservada para el tipo de dato cadena en Java es String. Una cadena puede ser entendida
como un arreglo de caracteres en el cual cada uno es identificado por un índice único; sin embargo,
a diferencia de los arreglos, las cadenas son inmutables. Para consultar el carácter en una posición
de una cadena, se usa el método charAt. El número de caracteres que conforma una cadena es
llamado su tamaño y es calculado por el método length.

Los literales de tipo cadena deben encerrarse en comillas dobles para ser distinguidos del resto del
código. Es posible formar nuevas cadenas mediante el operador de concatenación (+), el cual une dos
cadenas por sus extremos. Cuando uno de los operandos es de un tipo de dato primitivo, el operador
lo trata como una cadena y realiza la concatenación conforme a ello.

Los operadores usuales de comparación no funcionan de manera adecuada sobre datos de tipo
String. Por tal razón, el tipo incorpora los métodos equals y compareTo, que implementan estas
operaciones adecuadamente.

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 10
Referencias
Oracle Inc. (2015). Language Basics. The Java ™ Tutorials. Recuperado de https://docs.oracle.com/javase/
tutorial/java/nutsandbolts/if.html

Oracle Inc. (2015). Numbers and Strings. The Java ™ Tutorials. Recuperado de https://docs.oracle.com/
javase/tutorial/java/data/strings.html

Unicode Inc. (2017). What is Unicode? Recuperado de http://unicode.org/standard/WhatIsUnicode.html

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 11
INFORMACIÓN TÉCNICA

Módulo: Programación de Computadores


Unidad 4: Cadenas y recursión
Escenario 7: Procesamiento de información textual

Autor: Edwin Andrés Niño Velásquez

Asesor Pedagógico: Jeiner Velandia


Diseñador Gráfico: Kelly Yohana Valencia Forero
Asistente: Ginna Quiroga

Este material pertenece al Politécnico Grancolombiano.


Prohibida su reproducción total o parcial.

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 12

También podría gustarte