Сканер метод, чтобы получить символ - PullRequest
14 голосов
/ 08 апреля 2010

Что такое метод Scanner для получения char, возвращаемого клавиатурой в Java.

как nextLine() для String, nextInt() для int и т. Д.

Ответы [ 6 ]

20 голосов
/ 08 апреля 2010

Чтобы получить char из Scanner, вы можете использовать метод findInLine.

    Scanner sc = new Scanner("abc");
    char ch = sc.findInLine(".").charAt(0);
    System.out.println(ch); // prints "a"
    System.out.println(sc.next()); // prints "bc"

Если вам нужна группа char из Scanner,может быть удобнее (возможно, временно) изменить разделитель на пустую строку.Это заставит next() возвращать строку длины-1 каждый раз.

    Scanner sc = new Scanner("abc");
    sc.useDelimiter("");
    while (sc.hasNext()) {
        System.out.println(sc.next());
    } // prints "a", "b", "c"
4 голосов
/ 08 апреля 2010

Вы можете использовать Консольный API (который появился в Java 6) следующим образом:

Console cons = System.console();
if(cons != null) {
  char c = (char) cons.reader().read();  // Checking for EOF omitted
  ...
}

Если вам нужна только одна строка, вам даже не нужнопройти объект читателя:

String s = cons.readLine();
2 голосов
/ 08 апреля 2010

Java-класс Scanner не имеет встроенного метода для чтения со сканера посимвольно.

http://java.sun.com/javase/6/docs/api/java/util/Scanner.html

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

Scanner sc:

char c = sc.findInLine(".").charAt(0);

И вы можете использовать его для извлечения каждого символа в вашем сканере следующим образом:

while(sc.hasNext()){
    char c = sc.findInLine(".").charAt(0);
    System.out.println(c); //to print out every char in the scanner
}

Метод findInLine () просматривает ваш сканер и возвращает первую строку, соответствующую заданному вами регулярному выражению.

0 голосов
/ 06 апреля 2017
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);
0 голосов
/ 17 января 2014

sc.next (). Charat (0) ......... - метод ввода символов пользователем на основе числа, введенного во время выполнения

Пример: sc.next (). Шар (2) ------------ >>>>>>>>

0 голосов
/ 04 февраля 2013
Console cons = System.console();

Приведенная выше строка кода создает минусы как нулевую ссылку. Код и выходные данные приведены ниже:

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);
}

Выход:

1008 * нуль *

Код был протестирован на MacBook Pro с версией Java "1.6.0_37"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...