Obter char com Scanner[Resolvido]

2 respostas
PhoenixWings

Boa tarde. Eu criei um programa de adivinhação de um número e gostaria de saber se é possível obter um caractere com a classe Scanner criando uma variável como char e não como String (como o método next() de Scanner exige). Obrigado pela ajuda. Segue abaixo, o código:

package guessnumber;

/**
 *
 * @author Eduardo Felipe
 */


import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
     public static void main(String[] args) {

      Scanner input = new Scanner(System.in);
      int num, guess;
      String op; 
     /* eu quero declarar op como um char e obter o char do usuário 
         só que o método next() não me permite fazer isso */

      Random randomNumber = new Random();

      num = 1 + randomNumber.nextInt(1000);
      
     do{
      do {
      
      System.out.print("Guess a number between 1 and 1000: ");
      guess = input.nextInt();

      if(guess > num)
       System.out.println("Too high. Try again");
      else if(guess < num)
       System.out.println("Too low. Try again.");

      }while(guess != num);

      System.out.print("\nCongratulations. You guessed the number!\n");

      System.out.print("\nDo you want to play again (s/n)? ");
      op = input.next();

      op = op.toUpperCase();
     
     }while(op.equals("S"));
   }
  }

2 Respostas

E

Se você olhar em http://java.sun.com/javase/6/docs/api/java/util/Scanner.html não vai ver nenhum método que retorna um caracter só.

Uma das coisinhas chatas do Java é que no JDK não há nenhum método que leia apenas um caracter do console, como o “getch” do C. Portanto, o cara que for usar seu programa tem de digitar “S” e enter, ou “N” e enter, senão o método “next” nem vai se mexer do lugar.

PhoenixWings

entanglement:
Se você olhar em http://java.sun.com/javase/6/docs/api/java/util/Scanner.html não vai ver nenhum método que retorna um caracter só.

Uma das coisinhas chatas do Java é que no JDK não há nenhum método que leia apenas um caracter do console, como o “getch” do C. Portanto, o cara que for usar seu programa tem de digitar “S” e enter, ou “N” e enter, senão o método “next” nem vai se mexer do lugar.

ok, obrigado pelo esclarecimento entanglement.

Criado 11 de junho de 2010
Ultima resposta 11 de jun. de 2010
Respostas 2
Participantes 2