Capítulo 8 (pp. 177–182) de Computer Science I.
Temas
| Sección | Página | Contenido |
|---|---|---|
| Operaciones Básicas | 177 | Longitud, indexación, concatenación, subcadenas. |
| Comparaciones | 178 | Comparación lexicográfica; igualdad vs identidad. |
| Tokenización | 179 | Dividir cadenas en tokens. |
Ideas Clave
- La comparación de cadenas no es
==en todos los lenguajes — un tropiezo recurrente, hecho concreto en C (strcmp, arrays de caracteres) y Java (.equals()vs==). - La tokenización sustenta el análisis de entradas y la E/S de archivos.
- En C, las cadenas son arrays de caracteres terminados en null — no hay tipo de cadena nativo.
Ejemplos
Invertir una cadena
resultado ← ""
para i desde longitud(s) - 1 bajando hasta 0:
resultado ← resultado + s[i]
Tokenizar
partes ← separar("a,b,c", ",") // ["a", "b", "c"]
Comparar lexicográficamente
si comparar("apple", "banana") < 0:
imprimir "apple comes first"
Nunca confíes en == para la igualdad de contenido en todos los lenguajes.
En Java
String r = new StringBuilder(s).reverse().toString();
String[] parts = "a,b,c".split(","); // ["a", "b", "c"]
if ("apple".compareTo("banana") < 0) // usa compareTo/equals, no ==
System.out.println("apple comes first");
== compara referencias; .equals() / .compareTo() comparan contenido.
Citas
[1] Computer Science I, Cap. 8, pp. 177–182.