我有file.txt的:InputMismatchException时在阅读文件,扫描仪
7 10 5
ADD_FLIGHT SV221 Jeddah NewYork 30 7000
ADD_FLIGHT SV223 Jeddah London 30 4000
ADD_FLIGHT SV225 Jeddah Paris 30 3500
ADD_FLIGHT SV227 Jeddah Cairo 30 2000
ADD_PASS Mohammed Ali 33 M 0555788778
ADD_PASS Sara Maghrabi 30 F 0555111111
ADD_PASS Hani Ali 20 M 0555223344
ADD_PASS Mohammed Hafeth 33 M 0555889876
ADD_PASS Ahmad Sami 44 M 0555768768
ADD_FLIGHT SV332 Jeddah Riyadh 20 500
ADD_FLIGHT SV334 Jeddah Dammam 20 600
ADD_FLIGHT SV367 Jeddah Dubai 25 2000
ADD_PASS Salwa Ali 33 F 0555765672
ADD_PASS Faisal Amri 20 M 0555111111
ADD_PASS Mona Saleem 33 F 0555222112
ADD_PASS Ali Ali 33 M 0555743344
ADD_PASS Marwa Ahmad 33 F 0555545855
我想从文件中读取信息飞行,并把信息对象的数组,如果该文件包含ADD_flight声明..另外,如果文件包含ADD_PASD语句,则乘客从文件中读取信息乘客并将信息放入一个对象数组中。
我不知道为什么我有错误赎罪在我的代码:
File fin = new File("input.txt");
Scanner input = new Scanner(fin);
int c=0;
while (input.hasNextLine()){
String s=input.nextLine();
if (input.hasNext("ADD_FLIGHT")){
inputFlight (input, flight ,fin);
}
else if (input.hasNext("ADD_PASS")){
inputPass(input, passenger,fin);
listFlightDetails(flight);
listPassengerDetails(passenger);
}}}//end the mine
public static void inputFlight (Scanner input, Flight[] flight ,File fin) throws IOException{
if (indexFlight<flight.length) {
flight[indexFlight]=new Flight();
String flightCode=input.next();
flight[indexFlight].setflightCod(flightCode);
String ctyfrom=input.next();
flight[indexFlight].setcityFrom(ctyfrom);
String ctyto=input.next();
flight[indexFlight].setCityTo(ctyto);
int total=input.nextInt();
flight[indexFlight].setTotalSeats(total);
double price=input.nextDouble();
flight[indexFlight].setprice(total);
indexFlight++;
}}
public static void inputPass(Scanner input, Passenger[] passenger ,File fin) throws IOException{
if (indexPassenger<passenger.length) {
passenger[indexPassenger]=new Passenger();
String name=input.next();
passenger[indexPassenger].setname(name);
int age=input.nextInt();
passenger[indexPassenger].setage(age);
char gender=input.nextLine().charAt(0);
passenger[indexPassenger].setgender(gender);
String d=input.next();
passenger[indexPassenger].setphone(d);
indexPassenger++;
}}
public static void listFlightDetails(Flight[] flight) {
for (int i = 0; i < indexFlight; i++) {
if (flight[i].getflightCod() != null) {
System.out.println("Enter " + i + " for Flight code :" + flight[i].getflightCod() + " , " + flight[i].getcityFrom() + " , " + flight[i].getCityTo());
}}}
public static void listPassengerDetails(Passenger[] passenger) {
for (int i = 0; i < indexPassenger; i++) {
if (passenger[i].getname() != null) {
System.out.println("Enter " + i + " for Passenger :" + passenger[i].getname() + " , " + passenger[i].getgender());
}
}
}
我怎样才能正确的代码? 这个错误,它自带
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at FlightSystem.FlightSystem.inputFlight(FlightSystem.java:65)
at FlightSystem.FlightSystem.main(FlightSystem.java:34)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
This error for pass
Enter 0 for Flight code :SV223 , Jeddah , London
Enter 0 for Flight code :SV223 , Jeddah , London
Enter 0 for Flight code :SV223 , Jeddah , London
Enter 1 for Flight code :SV227 , Jeddah , Cairo
Enter 0 for Flight code :SV223 , Jeddah , London
Enter 1 for Flight code :SV227 , Jeddah , Cairo
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at FlightSystem.FlightSystem.main(FlightSystem.java:39)
Java Result: 1
难道你的意思是,如果符合“ADD_FLIGHT”开始要插入飞行阵列的详细信息,如果它以“ADD_PASS”开始,你想将其存储在乘客阵列? – Kartic
是的:)我的意思是 – user4746449
你得到了什么错误? –