Scanner Lesen nicht den ganzen Satz
Ich Schreibe ein Programm, welches den Benutzer zur Eingabe seiner Daten dann ausgibt. Seine 3/4 richtig, aber wenn es ankommt, wird die Ausgabe der Adresse, die er druckt nur ein Wort sagen wir nur 'der Erzbischof' von 'Erzbischof Street'. Wie kann ich dieses Problem beheben?
import java.util.*;
class MyStudentDetails{
public static void main (String args[]){
Scanner s = new Scanner(System.in);
System.out.println("Enter Your Name: ");
String name = s.next();
System.out.println("Enter Your Age: ");
int age = s.nextInt();
System.out.println("Enter Your E-mail: ");
String email = s.next();
System.out.println("Enter Your Address: ");
String address = s.next();
System.out.println("Name: "+name);
System.out.println("Age: "+age);
System.out.println("E-mail: "+email);
System.out.println("Address: "+address);
}
}
InformationsquelleAutor der Frage Bonett09 | 2010-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Ansatz funktioniert, aber ich weiß nicht wie, kann mir jemand erklären, wie funktioniert es..
InformationsquelleAutor der Antwort Arvind Ramachandran
Ich würde
Scanner#nextLine -
Gegensatz zunext
für Ihreaddress
Attribut.Seit dieser liefert die gesamte Zeile, getrennt durch eine Linie Trennzeichen, es dem Benutzer zu ermöglichen, geben Sie eine beliebige Adresse ohne jede Einschränkung.
InformationsquelleAutor der Antwort Anthony Forloney
Initialisieren den Scanner auf diese Weise so, dass es begrenzt Eingang mit einem neue-Zeile-Zeichen.
Finden Sie die JavaDoc für mehr details
Verwenden, sc.next (weiter), um die ganze Zeile in einen String
InformationsquelleAutor der Antwort Nomad
Standard-Trennzeichen-Scanner ist ein Leerraum. Überprüfen Sie javadocwie dies zu ändern.
InformationsquelleAutor der Antwort Raghuram
Anstatt
System.in
undSystem.out
direkt, verwenden Sie dieConsole
Klasse - ermöglicht es Ihnen, um eine Eingabeaufforderung angezeigt und das Lesen eine ganze Zeile (und damit die Festsetzung Ihr problem) Eingabe in einem Aufruf:InformationsquelleAutor der Antwort Michael Borgwardt
InformationsquelleAutor der Antwort
InformationsquelleAutor der Antwort kallipudi yeswanth
next() kann die Eingabe nur bis zum Leerzeichen. Es kann nicht Lesen, zwei Wörter durch ein Leerzeichen getrennt. Auch die next () - setzt den cursor in der gleichen Zeile nach dem Lesen der Eingabe.
nextLine - () liest die Eingabe, einschließlich Leerzeichen zwischen den Worten (das ist, liest es bis zum Ende der Zeile \n). Nachdem die Eingabe gelesen wurde, nextLine - () positioniert den cursor in die nächste Zeile.
für das Lesen der ganzen Zeile, die Sie verwenden können, nextLine - ()
InformationsquelleAutor der Antwort Gourab Konar
Können wir leicht fertig mit Scannen.nextLine -.Es wird gelesen, der rest von der Eingabe bis zum Ende. Dann ordnen Sie Ihre Variablen. Ganzer Satz gedruckt werden können, leicht
. Hier ist das Beispiel zum besseren Verständnis.
}
}
InformationsquelleAutor der Antwort Malsha
Um die gesamte Adresse hinzufügen
bevor
InformationsquelleAutor der Antwort Bharathi Mohan
Ich die token-Trennzeichen ein Zeilenumbruch Muster, Lesen Sie das nächste token, und dann setzen Sie den Begrenzer zurück auf das, was es war.
InformationsquelleAutor der Antwort Gubatron
Versuchte ich folgenden code, aber das ist nicht zu stoppen, da es keine Abbruchbedingung, damit es immer auf eine Eingabe wartet , können Sie könnte hinzufügen eine Bedingung für die Pause
InformationsquelleAutor der Antwort Asid
"es druckt nur ein Wort sagen wir nur 'der Erzbischof' von 'Erzbischof Street"
Ist es nur das drucken des Wortes, weil Scanner-Funktionen wie next(), nextInt(), etc. Lesen nur für eine begrenzte Zeit. Damit diese Funktion liest und gibt das nächste token.
Gehen Sie zurück zu Ihrem code, wenn Sie möchten, Lesen Sie die ganze Zeile "Erzbischof Street"
InformationsquelleAutor der Antwort MLY
Unten ist der Beispielcode zum Lesen einer Zeile in den Standard-input mit Java-Scanner-Klasse.
Eingang:
Ausgabe:
InformationsquelleAutor der Antwort Satyajit Mishra
den unten Stück code sollte das tun, was yoiu suchen:
InformationsquelleAutor der Antwort akshaya pandey
Sollten Sie versuchen, diesen code:
Diese völlig funktioniert.
InformationsquelleAutor der Antwort Syed Shahrukh Ahmad
Ich hatte die gleiche Frage. Dies sollte für Sie arbeiten:
InformationsquelleAutor der Antwort Eugene Prokopenko
Können Sie auch
InformationsquelleAutor der Antwort sidshrivastav
Verwenden
nextLine()
stattnext()
für die unter Satz als string-input.InformationsquelleAutor der Antwort Akshay Suresh
Können Sie dies tun:
InformationsquelleAutor der Antwort user114573