Metoda skanowania, aby uzyskać znak
Jaka jest metoda Scanner
aby uzyskać char
zwracaną przez klawiaturę w Javie.
Jak nextLine()
dla String
, nextInt()
dla int
, itd.
6 answers
Aby uzyskać char
z Scanner
, możesz użyć metody 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"
Jeśli potrzebujesz kilka char
z Scanner
, wtedy może być wygodniej (być może tymczasowo)zmienić ogranicznik na pusty łańcuch. Spowoduje to, że next()
zwróci za każdym razem ciąg o długości-1.
Scanner sc = new Scanner("abc");
sc.useDelimiter("");
while (sc.hasNext()) {
System.out.println(sc.next());
} // prints "a", "b", "c"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-08 06:35:02
Możesz użyć API konsoli (które pojawiło się w Javie 6) w następujący sposób:
Console cons = System.console();
if(cons != null) {
char c = (char) cons.reader().read(); // Checking for EOF omitted
...
}
Jeśli potrzebujesz tylko jednej linii, nie musisz nawet przechodzić przez obiekt reader:
String s = cons.readLine();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-08 05:58:10
Klasa Java Scanner nie posiada wbudowanej metody odczytu ze skanera znak po znaku.
Http://java.sun.com/javase/6/docs/api/java/util/Scanner.html
Jednak nadal powinno być możliwe pobranie poszczególnych znaków ze skanera w następujący sposób:
Scanner sc:
char c = sc.findInLine(".").charAt(0);
I możesz go użyć, aby pobrać każdy znak w skanerze w następujący sposób:
while(sc.hasNext()){
char c = sc.findInLine(".").charAt(0);
System.out.println(c); //to print out every char in the scanner
}
Metoda findInLine() przeszukuje skaner i zwraca pierwszy łańcuch, który pasuje do podanego przez Ciebie wyrażenia regularnego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-08 06:31:46
Console cons = System.console();
Powyższa linia kodu tworzy cons jako odniesienie null. Kod i wyjście są podane poniżej:
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);
}
Wyjście:
Null
Kod został przetestowany na MacBooku pro z wersją Javy "1.6.0_37"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-03 21:34:42
Sc. next (). charat(0).........jest metodą wprowadzania znaków przez użytkownika na podstawie liczby wprowadzonej w czasie wykonywania
Przykład: sc.next().charat(2)------------>>>>>>>>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-17 07:01:18
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-06 11:12:58