Что такое метод Scanner
для получения char
, возвращаемого клавиатурой на Java.
как nextLine()
для String
, nextInt()
для int
и т.д.
Что такое метод Scanner
для получения char
, возвращаемого клавиатурой на Java.
как nextLine()
для String
, nextInt()
для int
и т.д.
Чтобы получить 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"
Вы можете использовать API консоли (который появился на Java 6) следующим образом:
Console cons = System.console();
if(cons != null) {
char c = (char) cons.reader().read(); // Checking for EOF omitted
...
}
Если вам нужна только одна строка, вам даже не нужно проходить через объект-читатель:
String s = cons.readLine();
Класс 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() выполняет поиск через ваш сканер и возвращает первую строку, которая соответствует регулярному выражению, которое вы ему даете.
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);
}
Выход:
нулевым
Код был протестирован на macbook pro с java-версией "1.6.0_37"
sc.next(). charat (0)......... - метод ввода символа пользователем на основе числа, введенного во время выполнения
Пример: sc.next(). Charat (2) ------------ → → → →
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);