Java - Ayuda sobre convertir una cadena de letras a Mayúsculas usando una función

 
Vista:

Ayuda sobre convertir una cadena de letras a Mayúsculas usando una función

Publicado por Eduardo (2 intervenciones) el 18/09/2020 13:41:09
Hola gente .
Pues necesito ayuda sobre un ejercicio de Java sobre convertir una cadena de letras a Mayúsculas usando una función (con la condición de que esa cadena debe tener al menos una mayúscula) y si no hubiese mayúsculas en la cadena meter una excepción diciendo que no hay vocales.
Mi problema es que no consigue detectarme la mayúscula de la cadena y me manda directamente a la excepción.

Aquí os enseño el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class Ejercicio {
 
    /**
     * @param args the command line arguments
     * @throws java.lang.Exception
     */
    public static void main(String[] args) throws Exception {
        String a = "Hola_que_haces";
 
 
        esMayuscula(a);
 
    }
public static boolean esMayuscula(String a) throws Exception {
 
  boolean   Mayuscula = false;
for(int i=0;i<a.length();i++){
        if((a.charAt(i)=='A') || (a.charAt(i)=='B') || (a.charAt(i)=='C') || (a
                .charAt(i)=='D') || (a.charAt(i)=='E') || (a.charAt(i)=='F') || (a.charAt(i)=='G') || (a.charAt(i)=='H')  || (a.charAt(i)=='I') || (a.charAt(i)=='J')|| (a.charAt(i)=='K')
                || (a.charAt(i)=='L')|| (a.charAt(i)=='N')|| (a.charAt(i)=='M')|| (a.charAt(i)=='Ñ')|| (a.charAt(i)=='O')|| (a.charAt(i)=='P')|| (a.charAt(i)=='Q')|| (a.charAt(i)=='R')
                || (a.charAt(i)=='S')|| (a.charAt(i)=='T')|| (a.charAt(i)=='U')|| (a.charAt(i)=='V')|| (a.charAt(i)=='W')|| (a.charAt(i)=='X')
                || (a.charAt(i)=='Y')|| (a.charAt(i)=='Z')){
            Mayuscula = true;
        }
 
        else{
 
           throw new Exception("No hay vocales");
        }
}
        if(Mayuscula = true)
        {
            Mayuscula=true;
            System.out.println(a.toUpperCase());
        }
        else if(Mayuscula= false)
        {
            throw new Exception("No hay vocales");
        }
        return Mayuscula;
    }
 
  Gracias por la ayuda de antemano.
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.977
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda sobre convertir una cadena de letras a Mayúsculas usando una función

Publicado por Rodrigo (529 intervenciones) el 18/09/2020 21:00:03
Cambia tu codigo asi:

Para comparar si es mayuscula, en vez de usar todas las alternativas posibles, usa la comparacion contra los limites

En general
1
2
3
if( c >= 'A' && c <= 'Z' ) {
 ...
}

donde c es un caracter.
Cambialo para usar el caracter i-esimo.

Cuando compares, NO USES =
usa ==

Cuando hayas corregido esto, posiblemente deberias tambien eliminar la linea 33.
Que sentido tiene asignar a la variable lo mismo que chequeaste en la linea 31? (Bueno, ahora no estas chequeando, estas asignando, pero cuando lo corrijas, tambien podrias eliminar esto)

Por ultimo, el error no deberia ser "NO HAY MAYUSCULAS" ? No tiene sentido haber comparado las mayusculas y luego de no haberlas encontrado decir que no habia vocales.

Si usas = estas asignando
Si usas == estas comparando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda sobre convertir una cadena de letras a Mayúsculas usando una función

Publicado por Eduardo (2 intervenciones) el 19/09/2020 21:04:44
Gracias por la ayuda, finalmente he podido solucionar el problema con el ejercicio y ya funciona como quería.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar