Чтение одного символа в Java - PullRequest
24 голосов
/ 15 июня 2010

Как можно вводить символ в Java с клавиатуры?

Ответы [ 5 ]

24 голосов
/ 15 июня 2010

Вы можете отсканировать всю строку:

Scanner s = new Scanner(System.in);
String str = s.nextLine();

Или вы можете прочитать один char, если вы знаете, с какой кодировкой вы имеете дело:

char c = (char) System.in.read();
15 голосов
/ 27 октября 2013

Вы можете использовать сканер следующим образом:

Scanner s= new Scanner(System.in);
char x = s.next().charAt(0);

Используя функцию charAt, вы можете получить значение первого символа без использования внешнего приведения.

1 голос
/ 21 декабря 2016

я нашел, что этот способ работал хорошо:

    {
    char [] a;
    String temp;
    Scanner keyboard = new Scanner(System.in);
    System.out.println("please give the first integer :");
    temp=keyboard.next();
    a=temp.toCharArray();
    }

Вы также можете получить индивидуальный с String.charAt ()

1 голос
/ 15 июня 2010

Для этого вы можете использовать Scanner.Непонятно, каковы ваши точные требования, но вот пример, который должен быть иллюстративным:

    Scanner sc = new Scanner(System.in).useDelimiter("\\s*");
    while (!sc.hasNext("z")) {
        char ch = sc.next().charAt(0);
        System.out.print("[" + ch + "] ");
    }

Если вы введете этот ввод:

123 a b c x   y   z

Вывод:

[1] [2] [3] [a] [b] [c] [x] [y] 

Итак, что здесь происходит, так это то, что Scanner использует \s* в качестве разделителя, который является регулярным выражением для «нуля или более пробельных символов».При этом во входных данных пропускаются пробелы и т. Д., Поэтому вы получаете только непробельные символы, по одному за раз.

0 голосов
/ 15 июня 2010

Может быть, вы можете попробовать этот код:

import java.io.*;
public class Test
{
public static void main(String[] args)
{
try
  {
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  String userInput = in.readLine();
  System.out.println("\n\nUser entered -> " + userInput);
  }
  catch(IOException e)
  {
  System.out.println("IOException has been caught");
  }
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...