Estoy escribiendo un juego que hace que el usuario adivine el número que se genera al azar. Al final, mostraría el número total correcto y la suma de esos números correctos. Sin embargo, no puedo mostrar la suma correcta del número correcto que tiene el usuario. ¿Puede alguien ayudarme con esto? ¡Gracias!

public static void main(String[] args) {
    Random rng = new Random();
    Scanner consoleScanner = new Scanner(System.in);
    String inputString;
    int answer = rng.nextInt(90000) + 10000, sum, numberCorrect;
    System.out.print("I have randomly chosen a 5-digit code for you to guess.\n"
            + "Each time you guess, I will tell you how many digits are correct and the sum of the digits that are correct.\n"
            + "For example, if the number is \"68420\" and you guess 12468, I will respond:\n"
            + "Number of Digits Correct: 1\n" + "Sum of Digits Correct   : 4\n"
            + "From deduction, you will know the 4 was correct in the guess.\n\n"
            + "Now its your turn..................................................................\n" + "answer = "
            + answer);
    do {
        System.out.print("\nPlease enter a 5-digit code (your guess): ");
        inputString = consoleScanner.nextLine();
        numberCorrect = 0;
        sum = 0;
        if (inputString.length() != 5) {
            System.out.println("Please enter 5-digit code only.");
            System.exit(0);
        }
        for (int i = 0; i < 5; i++) {
            String answerString = String.valueOf(answer);
            if (inputString.charAt(i) == answerString.charAt(i)) {
                numberCorrect++;
                char digit = answerString.charAt(i);
                sum += digit;
            }
        }
        System.out.println("Number of Digits Correct: " + numberCorrect + "\nSum of Digits Correct:    " + sum);
    }
    while (numberCorrect < 5);
    System.out.println("****HOORAY!  You solved it.  You are so smart****");
}
-6
Hieu Pham 8 mar. 2017 a las 23:27

2 respuestas

La mejor respuesta

Tienes que convertir tu char en un valor numérico:

sum += Character.getNumericValue(digit);
-1
Semaphor 8 mar. 2017 a las 20:35

Su variable de suma es entera y está tratando de agregarla a char (dígito). necesita convertir el carácter a int válido y luego agregarlo a la suma.

Las siguientes referencias pueden ayudar!

Java: analizar el valor int de un char

O

Convertir caracteres a enteros en Java

0
Community 23 may. 2017 a las 12:10