Java - problema con char

 
Vista:

problema con char

Publicado por Sandra (4 intervenciones) el 23/04/2007 15:57:06
Hola un saludo a todos, estoy tratando de resolver un pequeño problema en java. Se trata de escribir un programa que reciba como entrada una serie de diez números de un solo dígito como caracteres, y que determine e imprima el mayor de los números. El programa debe utilizar cuando menos las siguientes variables:

a) contador: Un contador para contar hasta 10 (es decir, para llevar el registro de cuantos números se han introducido, y para determinar cuando se hayan procesado los 10 números);

b) número: El dígito actual introducido en el programa;
c) mayor: El número más grande encontrado hasta ahora.

El problema lo puedo resolver utilizando variables enteras, pero aqui la duda es que pide introducir caracteres los cuales deben ser solo de 0 - 9, y no se como hacer el cast, la verdad es que con chars no he trabajado mucho. Aqui esta el codigo:

public class MayorSerieNumeros {

public static void main(String[] args)
{
String cadenaNumero;
int numero = 0, numeroMayor = 0;
int contadorDigitos;
char caracter;

contadorDigitos = 1;

while(contadorDigitos <= 5) {
cadenaNumero = JOptionPane.showInputDialog("Escriba 10 dígitos");
numero = Integer.parseInt(cadenaNumero);
caracter = (char)numero;
if(caracter > numeroMayor)
numeroMayor = caracter;

contadorDigitos++;
}

JOptionPane.showMessageDialog(null, "El número mayor es: " + numeroMayor,"RESULTADO",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);

}

}

Yo intento hacer el cast con esto: caracter = (char)numero, pero al correr el programa me sigue aceptando numeros mayores del rango 0 - 9.

Espero alguien pueda ayudarme, gracias.
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

RE:problema con char

Publicado por angel (537 intervenciones) el 23/04/2007 16:35:03
No se para que usas una variable de tipo char, pero bueno,,puedes comprobar que el numero que insertas en el JOptionPane..no sea mayor que 10,,,haces un bucle y mientras no inserte un dato valido, se vuelve a mostrar el JOption pane..

while(contadorDigitos <= 5) {
do{
cadenaNumero = JOptionPane.showInputDialog("Escriba 10 dígitos");
numero = Integer.parseInt(cadenaNumero);
}while(0>numero || numero>9);
caracter = (char)numero;
if(caracter > numeroMayor)
numeroMayor = caracter;

contadorDigitos++;
}

Saludos
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

RE:problema con char

Publicado por Sandra (4 intervenciones) el 23/04/2007 17:47:00
Que tal Angel gracias por la respuesta, mira el problema es que me piden introducir 10 digitos como caracteres, no como enteros y posteriormente encuentre el número mas grande, o los dos números mas grandes. La cuestio es que no se como hacer estos pues al usar el JOptionPane se debe introducir el dato como String pero al querer hacerle el cast a carcter no tengo idea como hacerlo.

Espero me haya explicado y me ayudes. Gracias.
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

RE:problema con char

Publicado por angel (537 intervenciones) el 23/04/2007 17:56:13
hola, a ver si te entiendo, te piden que introduzcas los caracteres ,ej.. a , g, j.... ??? y k muestres su valor como digito???

Saludos...
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

RE:problema con char

Publicado por Sandra (4 intervenciones) el 23/04/2007 18:18:45
Mira te voy a poner un fragmento del texto explicando el problema, es del libro de deitel : Java Como Programar Quinta Edición.

Asi dice:

Escriba un programa en seudocódigo y despues una aplicación en Java que reciba como entrada una serie de diez números de un solo dígito como caracteres, y que determine e imprima el mayor de los números. Su programa debe utilizar cuando menos las siguientes variables:
a) contador: Un contador para contar hasta 10 (es decir, para llevar el registro de cuantos números se han introducido, y para determinar cuando se hayan procesado los 10 números);
b) número: El dígito actual introducido en el programa;
c) mayor: El número más grande encontrado hasta ahora.

Al poner ellos que el programa reciba 10 números de un solo digito como carcteres yo entiendo que debo recibir en el JOptionPane un String, despues esa cadena convertirla a char para que obviamente introduzca numeros de un solo dígito como caracteres.

Yo no tengo mucha experiencia en programación y según yo eso es lo que piden, pues si lo manejo como enteros seria mas sencillo hacerlo aparte que me permitiria meter numeros de mas de un digito y el problema dice que solo sean de uno..

Por eso en mi codigo trato de convertir el entero a char haciendole un cast caracter = (char)numero; pero por lo visto no sirve de nada pues me sigue permitiendo numeros normales o enteros.

Espero me haya explicado jeje..

Gracias!
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

RE:problema con char

Publicado por Tom (42 intervenciones) el 23/04/2007 18:27:54
Bueno, no me parece que el enunciado del problema te obligue a usar car. Más bien parece que te obligue a usar Strings.

De todos modos, prueba con:

caracter = (char)numero - '0';
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

RE:problema con char

Publicado por angel (537 intervenciones) el 23/04/2007 22:08:36
Hola, pues no veo que te obligue a usar char, creo k mas bien es una forma de hablar para que recojas el numero uno a uno,,,,
Ademas que yo recuerde ahora mismo,,siempre que se le desde el teclado,,ya se a traves de un JOptionPane, a traves de consola o a traves de cualquier componente grafico ...siempre se recoje String..

Mira t doy unas ideas si kiers usar char..

//Texto leido desde l JOption pane..
String texto = ,,,,
//Recojes el primer caracter que hayas introducido....
char c = texto.charAt(0);
//esta conversion se puede hacer ya que el valor de un char puede ser almacenado en un int...es lo que se llama un "cast implicito"
int numero = c;
//Ahora ya lo puedes comparar o hacer lo que quieras...

Saludos
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