我遇到了问题,不知道该怎么做。这是例外:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at Auto.<init>(Auto.java:32)
at Auto.main(Auto.java:22)
这就是我的代码:
import java.util.Scanner;
public class Auto {
private String Marke1;
String Modell1;
String Farbe1;
double Höhe;
double Breite;
double Länge;
int Tueren = 4;
public static void main(String[] args) {
System.out.println("Hello Auto!");
Auto myFerrari = new Auto();
myFerrari.einfacheNachricht();
Auto myOpel = new Auto();
myOpel.einfacheNachricht();
}
public Auto() {
Scanner r = new Scanner(System.in);
System.out.println("Bitte geben Sie die Marke ihres Autos an");
Marke1 = r.nextLine()
System.out.println("Bitte geben Sie das Modell ihres Autos an");
Modell1 = r.nextLine();
System.out.println("Bitte geben Sie die Farbe ihres Autos an");
Farbe1 = r.nextLine();
System.out.println("Bitte geben Sie an, wiehoch ihr Auto ist");
Höhe = r.nextDouble();
System.out.println("Bitte geben Sie an, wie breit ihr Auto ist");
Breite = r.nextDouble();
System.out.println("Bitte geben Sie an, wie lang ihr Auto ist");
Länge = r.nextDouble();
r.close();
}
public Auto(String aMarke1, String aModell1, String aFarbe1, double aHöhe, double aBreite, double aLänge) {
Marke1 = aMarke1;
Modell1 = aModell1;
Farbe1 = aFarbe1;
Höhe = aHöhe;
Breite = aBreite;
Länge = aLänge;
}
public int getSitzreihen() {
return Tueren = 2;
}
public void einfacheNachricht() {
System.out.println("------------------------------------------");
System.out.println("Automarke: " + Marke1);
System.out.println("Modell: " + Modell1);
System.out.println("Farbe: " + Farbe1);
System.out.println("Sitzreihen: " + getSitzreihen());
System.out.println("Volumen: " +(Höhe * Breite * Länge) +"m²" ) ;
System.out.println("Ihr " + Farbe1 + "er " + Marke1 + " " + Modell1 + " hat ein Volumen von "+(Höhe * Breite * Länge) +"m²");
System.out.println("------------------------------------------\n");
}
}
答案 0 :(得分:3)
关闭Scanner
会导致基础InputStream
关闭。由于只有一个System.in
,因此任何新创建的Scanner
对象都无法从同一个流中读取:
r.close();
此行应删除
请参阅:Do not create multiple buffered wrappers on a single InputStream
答案 1 :(得分:1)
您需要先检查下一行是否存在,在致电hasNextLine()
之前使用nextLine()