Что Scanner
метод для получения a char
возвращенный клавиатурой в Java.
как nextLine()
для String
, nextInt()
для int
, и т.д.
Чтобы получить 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"
Класс 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 () выполняет поиск по вашему сканеру и возвращает первую строку, которая соответствует регулярному выражению, которое вы ему даете.
Вы можете использовать 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();