String in Scanner einlesen

Diskutiere String in Scanner einlesen im Java Basics - Anfänger-Themen Bereich.
M

m4sc0

Hallo Leute, ich hab ein Problem und zwar:
Ich habe folgenden Code:
Code:
import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        double d = scan.nextDouble();
        String s = scan.nextLine();
        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}
und dazu den stdin:
42
3.1415
Java lernen macht Spaß!

Jetzt ist das Problem dass alles wunderbar eingelesen wird außer der String. Ich hoffe einer von euch kann mir irgendwie helfen.

PS:
Der stdout soll so aussehen:
String: Java lernen macht Spaß!
Double: 3.1415
Int: 42

Danke schon mal im Voraus.
MfG
 
mihe7

mihe7

Die nextXXX-Methoden arbeiten etwas anders als nextLine. Daher musst Du beim Wechsel das Zeilenende mittels eines zusätzlichen Aufrufs von nextLine() entfernen:
Java:
import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        double d = scan.nextDouble();
        scan.nextLine(); // Zeilenende entfernen
        String s = scan.nextLine();
        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}
 
M

m4sc0

Die nextXXX-Methoden arbeiten etwas anders als nextLine. Daher musst Du beim Wechsel das Zeilenende mittels eines zusätzlichen Aufrufs von nextLine() entfernen:
Java:
import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        double d = scan.nextDouble();
        scan.nextLine(); // Zeilenende entfernen
        String s = scan.nextLine();
        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}
Vielen Dank, hat geklappt. <3
 
Kirby_Sike

Kirby_Sike

Vielleicht die falsche Herangehensweise (Ich nutze inzwischen auch lieber den Buffered Reader) aber ich habe es sonst mit dem Scanner immer so gelöst:

Java:
import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = Integer.parseInt(scan.nextInt());
        double d = Double.parseDouble(scan.nextLine());
        String s = scan.nextLine();
        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}
 
Kirby_Sike

Kirby_Sike

Habe gerade noch gesehen, du müsstest diese Zeile hier:

Java:
int i = Integer.parseInt(scan.nextInt());
durch das ersetzen:

Java:
int i = Integer.parseInt(scan.nextLine());
 
Thema: 

String in Scanner einlesen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben