Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Refer en 22 de Junio 2015, 21:19

Título: Java System.in.read no funciona devuelve una entrada errónea de teclado
Publicado por: Refer en 22 de Junio 2015, 21:19
Tengo un problema con el resultado que me deberia de dar al ingresar un valor(edad) a la consola de NetBeans, a edad le tengo asignado un metodo de cual optendra un valor ingresado por el usuario en la consola. Pero al ingresar un valor como por ejemplo:
 
 edad= 20  me devuelve un valor de 50 en el enunciado
 System.out.println(" Su edad es: " + edad)

Código: [Seleccionar]
import java.io.IOException;

public class cero{
    public static void main(String args[])throws IOException
    {
        int edad= 0;
        System.out.print("Ingrese su edad: ");
        edad = System.in.read();
        System.out.println("Su edad es: " + edad);
       
    }
}

Por favor ayudenme, no entiendo donde esta el error  :(
Título: Re:Problema Lógico al Ingresar un valor
Publicado por: DRANXZ88 en 22 de Junio 2015, 23:55
hola lo primero tenes que llamar a la clase con lo hace la clase como por ejemplo ComprobadorEdad o algo parecido.

y el codigo esta mal tenes que crear el teclado ejemplo
Código: [Seleccionar]
Scanner teclado = new Scanner(System.in);
y usando teclado creado le asigna a edad el valor ingresado pero tenes que  convertir porque la edad es de tipo entero y el teclado de String para convertir usa Integer.valueOf(); o algo asi o podes poner como String la edad

al final el codigo quedaria algo asi.
Código: [Seleccionar]
package cero;

import java.util.Scanner;

public class Cero {

   
    public static void main(String[] args) {
        int edad = 0;
        Scanner teclado = new Scanner(System.in);
        System.out.print("Ingrese su edad: ");

        edad = Integer.valueOf(teclado.nextLine());

        System.out.println("Su edad es: " + edad);
    }

}
Título: Re:Problema Lógico al Ingresar un valor
Publicado por: DRANXZ88 en 22 de Junio 2015, 23:57
Yo te recomendaría que sigas el curso de java desde cero así para aprender la estructura, lógica y la forma correcta de programar en java te va a ayudar mucho participando del foro para resolver los ejercicios y las dudas que tengas.

https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188 (https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188)
Título: Re:Problema Lógico al Ingresar un valor
Publicado por: Refer en 23 de Junio 2015, 08:50
Muchas gracias, ese metodo si funciona aun que sigo con la duda por que el metodo read produce ese resultado
Título: Re:Problema Lógico al Ingresar un valor
Publicado por: DRANXZ88 en 23 de Junio 2015, 18:55
Yo probé en netBeans también y no me compilo luego el código daba error no me apareció el resultado que me dijiste medio raro es si te apareció eso a vos.
Título: Re:Java System.in.read no funciona devuelve una entrada errónea de teclado
Publicado por: alftalavera en 13 de Mayo 2017, 09:39
El problema es que se lee un caracter únicamente, este ejemplo permite leer un numero mayor con read() pasandole un parámetro.

Código: [Seleccionar]
package cero;
import java.io.*;

public class Cero {
    public static void main(String args[]) {
        byte[] edad = new byte[6];
        int nBytes;
        System.out.print("Ingrese su edad: ");
        try {
            nBytes = System.in.read(edad);
            System.out.println("Su edad es: " + new String(edad));           
        } catch (IOException e) {
            System.out.println("Error: " + e.toString());
        }
    }
}