Ignorar caracteres que no son letras
En el paso anterior, vimos que Character.isUpperCase()
devuelve false
para caracteres que no son letras, como espacios y números. A menudo, cuando se analiza texto, solo nos interesan las letras y queremos ignorar otros caracteres.
La clase Character
proporciona otro método útil, Character.isLetter()
, que devuelve true
si un carácter es una letra (ya sea mayúscula o minúscula), y false
en caso contrario. Podemos combinar Character.isLetter()
y Character.isUpperCase()
para verificar si un carácter es una letra mayúscula y, al mismo tiempo, ignorar los caracteres que no son letras.
Vamos a modificar nuestro programa para contar el número de letras mayúsculas en la cadena, ignorando espacios, números y otros caracteres que no son letras.
-
Abre el archivo HelloJava.java
en el editor WebIDE.
-
Reemplaza el código existente con lo siguiente:
public class HelloJava {
public static void main(String[] args) {
String testString = "Hello Java 123";
int uppercaseCount = 0;
System.out.println("Counting uppercase letters in the string: \"" + testString + "\"");
for (int i = 0; i < testString.length(); i++) {
char currentChar = testString.charAt(i);
// Check if the character is a letter AND if it is uppercase
if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)) {
uppercaseCount++;
System.out.println("Found uppercase letter: '" + currentChar + "' at index " + i);
}
}
System.out.println("Total uppercase letters found: " + uppercaseCount);
}
}
En este código:
- Inicializamos una variable entera
uppercaseCount
en 0.
- Dentro del bucle, agregamos una condición
if
: if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar))
. El operador &&
significa "y". Esta condición es verdadera solo si Character.isLetter(currentChar)
es verdadero y Character.isUpperCase(currentChar)
también es verdadero.
- Si la condición es verdadera, incrementamos
uppercaseCount
e imprimimos un mensaje que indica que se ha encontrado una letra mayúscula.
- Después de que el bucle termine, imprimimos el recuento total de letras mayúsculas.
-
Guarda el archivo (Ctrl+S o Cmd+S).
-
Compila el programa en la Terminal:
javac HelloJava.java
-
Ejecuta el programa compilado:
java HelloJava
Deberías ver una salida similar a esta:
Counting uppercase letters in the string: "Hello Java 123"
Found uppercase letter: 'H' at index 0
Found uppercase letter: 'J' at index 6
Total uppercase letters found: 2
Esta salida muestra que nuestro programa identificó y contó correctamente solo las letras mayúsculas ('H' y 'J'), ignorando las letras minúsculas, los espacios y los números.