Co to jest metoda Scanner
, aby uzyskać char
zwrócone przez klawiaturę w Javie.Metoda skanera, aby uzyskać znak zapytania
jak nextLine()
dla String
, nextInt()
dla int
itp
Co to jest metoda Scanner
, aby uzyskać char
zwrócone przez klawiaturę w Javie.Metoda skanera, aby uzyskać znak zapytania
jak nextLine()
dla String
, nextInt()
dla int
itp
Aby uzyskać char
z Scanner
, można 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
od A Scanner
, to może być wygodniej (być może tymczasowo) zmienić separator do pustego łańcucha. Spowoduje to, że next()
zwraca ciąg znaków długości 1 za każdym razem.
Scanner sc = new Scanner("abc");
sc.useDelimiter("");
while (sc.hasNext()) {
System.out.println(sc.next());
} // prints "a", "b", "c"
To ma trochę więcej sensu, dziękuję – bizarrechaos
@poly: domyślny Delimiter to ('" "') ...? jak to ustawić? czy to jest sugerowany sposób -zasilanie, ponieważ ten jest piekło łatwe, to wszystkie inne dane rozwiązania na SO !! – NoobEditor
'findInLine (". ")' Nie będzie pasowało do nowych linii. To drugie podejście. – user3669782
Można użyć Console API (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 wystarczy jeden wiersz nie musisz nawet przechodzić przez obiekt czytnika:
String s = cons.readLine();
Pozdrowienia dla szybkiej odpowiedzi – bizarrechaos
Klasa Java's Scanner nie ma wbudowanej metody odczytu ze skanera znak po znaku.
http://java.sun.com/javase/6/docs/api/java/util/Scanner.html
Należy jednak nadal możliwe, aby pobrać poszczególne znaki ze skanera następująco:
Scanner sc:
char c = sc.findInLine(".").charAt(0);
I można go używać do pobierania każdy znak w skanerze tak:
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 ciąg zgodny z wyrażeniem regularnym, które podałeś to.
Console cons = System.console();
Powyższa linia kodu tworzy minusy jako odniesienie zerowe. Kod i wyjścia 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ściowa:
zerowy
kod był testowany na MacBook Pro z wersji Java "1.6.0_37"
sc .next(). charat (0) ......... to metoda wprowadzania znaku przez użytkownika w oparciu o liczbę wprowadzoną w czasie wykonywania
przykładem. sc.next() charAt (2) ------------ >>>>>>>>
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);
Proszę dodać objaśnienie do kodu. Co ta odpowiedź dodaje do już istniejących i akceptowanych odpowiedzi? – Raidri
więc okazuje się, że nie jest wbudowany w metodzie . Skończyło się na wykonaniu String str = kb.nextLine(); char c = str.charAt (0); – bizarrechaos