Метод сканера для получения символа

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

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

14
задан skaffman 15 May 2011 в 12:47
поделиться

3 ответа

Чтобы получить char из сканера , вы можете использовать метод 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 из сканера , то может быть удобнее (возможно, временно) изменить разделитель на пустую строку. Это заставит next () каждый раз возвращать строку длиной 1.

    Scanner sc = new Scanner("abc");
    sc.useDelimiter("");
    while (sc.hasNext()) {
        System.out.println(sc.next());
    } // prints "a", "b", "c"
20
ответ дан 1 December 2019 в 10:18
поделиться

Класс Java Scanner не имеет встроенного метода для посимвольного чтения из 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 () выполняет поиск по вашему сканеру и возвращает первую строку, которая соответствует регулярному выражению, которое вы ему даете.

2
ответ дан 1 December 2019 в 10:18
поделиться

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

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

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

String s = cons.readLine();
4
ответ дан 1 December 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: