我使用Java eclipse,它显示有:
java.util.NoSuchElementException.
有人可以帮助我解决这个问题吗?
似乎错误发生在:
String city = scin3.next();
控制台说:
java.util.Scanner.throwFor and java.util.Scanner.next.
下面是我的代码:
package p1;
import java.io.File;
import java.io.IOException;
import java.util.*;
class Connection {
private String departure;
private String arrival;
Connection () {};
Connection (String departure, String arrival) {
this.departure = departure;
this.arrival = arrival;
}
String getDeparture() {return departure;}
String getArrival() {return arrival;}
}
public class H4_20160235_1 {
public static void main(String[] args)
{
ArrayList<Connection> list = new ArrayList<Connection>();
File file = new File("connection.txt");
Scanner scin1;
if (file.exists()) {
try {
scin1 = new Scanner(file);
while (scin1.hasNext()) {
String departure = scin1.next();
String arrival = scin1.next();
Connection c = new Connection(departure, arrival);
list.add(c);
}
scin1.close();
} catch (IOException e) {}
}
else {
System.out.println("connection.txt not exist!!");
}
LinkedList<String> route = new LinkedList<String> ();
System.out.println("---------------------------------------");
System.out.println("Welcome to Flight Tour NORANG Ballon !!");
System.out.println("---------------------------------------");
System.out.println();
System.out.println("<<< Flight Information >>>");
for (Connection l: list) {
System.out.printf("%s -> %s", l.getDeparture(), l.getArrival());
System.out.println();
}
System.out.println();
Set<String> set = new LinkedHashSet<String>();
for (int a=0; a<list.size(); a++)
set.add(list.get(a).getDeparture());
System.out.println("---------------------------------------");
System.out.println("<<< Cities in the DB >>>");
System.out.println("---------------------------------------");
for (String city: set) {
System.out.printf("%s", city);
System.out.println();
}
System.out.println("---------------------------------------");
System.out.println();
System.out.println("Let's plan a round-trip route!");
Scanner scin2 = new Scanner(System.in);
System.out.print("Enter the starting city : ");
String departure = scin2.next();
scin2.close();
route.add(departure);
System.out.printf("From %s you can fly directly to :", departure);
System.out.println("\n");
ArrayList<String> cities = new ArrayList<String> ();
for (Connection l : list) {
if (departure.equals(l.getDeparture())) {
cities.add(l.getArrival());
System.out.println(l.getArrival());
}
}
System.out.println();
System.out.println("---------------------------------------");
int i = 0;
while (true) {
Scanner scin3 = new Scanner(System.in);
System.out.printf("Where do you want to go from %s?", route.get(i));
String city = scin3.next();
scin3.close();
i++;
if (cities.contains(city) == false)
System.out.println("***** You can't get to that city by a direct flight. *****");
if (route.contains(city) == true)
break;
ArrayList<String> cities2 = new ArrayList<String>();
for (Connection l: list) {
if (city.equals(l.getDeparture())) {
cities2.add(l.getArrival());
System.out.println(l.getArrival());
}
}
}
System.out.println("=====================================");
System.out.println("<<< Your Final Route >>>");
Iterator <String>iter = route.iterator();
while (iter.hasNext()) {
String temp = (String)iter.next();
System.out.println(temp);
}
System.out.println("---------------------------------------");
System.out.println();
System.out.println("Have a nice Trip with NORANG Ballon ~");
}
}
下面是我的connection.txt文件。
SanJose SanFrancisco
SanJose Anchorage
NewYork Anchorage
NewYork SanJose
NewYork SanFrancisco
NewYork Honolulu
Anchorage NewYork
Anchorage SanJose
Honolulu NewYork
Honolulu SanFrancisco
Denver SanJose
SanFrancisco NewYork
SanFrancisco Honolulu
SanFrancisco Denver
答案 0 :(得分:0)