Método do scanner para obter um char
-
25-09-2019 - |
Pergunta
O que é Scanner
Método para obter um char
devolvido pelo teclado em Java.
Curti nextLine()
por String
, nextInt()
por int
, etc.
Solução
Para obter um char
a partir de um Scanner
, você pode usar o findInLine
método.
Scanner sc = new Scanner("abc");
char ch = sc.findInLine(".").charAt(0);
System.out.println(ch); // prints "a"
System.out.println(sc.next()); // prints "bc"
Se você precisar de um monte de char
a partir de um Scanner
, pode ser mais conveniente (talvez temporariamente) alterar o delimitador para a string vazia. Isso fará next()
Retorna uma corda de comprimento-1 sempre.
Scanner sc = new Scanner("abc");
sc.useDelimiter("");
while (sc.hasNext()) {
System.out.println(sc.next());
} // prints "a", "b", "c"
Outras dicas
Você pode usar o API do console (que apareceu em Java 6) da seguinte maneira:
Console cons = System.console();
if(cons != null) {
char c = (char) cons.reader().read(); // Checking for EOF omitted
...
}
Se você só precisa de uma única linha, nem precisa passar pelo objeto do leitor:
String s = cons.readLine();
A classe Scanner de Java não possui um método embutido para ler a partir de um personagem por caractere do scanner.
http://java.sun.com/javase/6/docs/api/java/util/scanner.html
No entanto, ainda deve ser possível buscar personagens individuais do scanner da seguinte maneira:
Scanner sc:
char c = sc.findInLine(".").charAt(0);
E você pode usá -lo para buscar cada personagem em seu scanner assim:
while(sc.hasNext()){
char c = sc.findInLine(".").charAt(0);
System.out.println(c); //to print out every char in the scanner
}
O método findInline () pesquisa através do seu scanner e retorna a primeira string que corresponde à expressão regular que você a fornece.
Console cons = System.console();
A linha de código acima cria contras como uma referência nula. O código e a saída são fornecidos abaixo:
Console cons = System.console();
if (cons != null) {
System.out.println("Enter single character: ");
char c = (char) cons.reader().read();
System.out.println(c);
}else{
System.out.println(cons);
}
Resultado :
nulo
O código foi testado no MacBook Pro com a versão Java "1.6.0_37"
SC.Next (). Charat (0) ......... é o método de inserir o caráter por usuário com base no número inserido no tempo de execução
Exemplo: SC.Next (). Charat (2) ------------ >>>>>>>>
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);