我正在从一个文件中读取它们,并且需要将信息存储在数组中,以便将它们打印到另一个文件中。一个用于由三个字母组成的代码,一个用于城市名称,另一个用于结尾的字母。我遇到的问题是,当我想读取它们时,扫描器会在第二行和第三行添加"ADD_Airport“字符串。在main方法中,我有它,如果(command.equals(“ADD_Airport”)),它将激活该方法。第一行可以按我希望的那样工作,但其余行不能。谢谢
附注:有人知道我可以在哪里练习或找到类似的例子吗?谢谢。
这是输入文件
6 9
ADD_Airline服务Saudia saudia.com
添加-_Airline EK阿联酋UE emirates.com
ADD_Airline NS NasAir SA flynas.com
ADD_Airline BA BritishAirways UK britishairways.com
ADD_Airline KL荷兰NL klm.com
ADD_Airline GF GulfAir BH gulfair.com
ADD_Airport JED Jeddah KAIA
ADD_Airport MED Madina PMIA
ADD_Airport DXB迪拜DIA
ADD_Airport BAH BAH BIA BIA
开罗中情局ADD_Airport CAI
ADD_Airport LHR伦敦硬件
ADD_Airport阿姆斯特丹自动取款机
ADD_Airport KRT喀土穆克钦独立军
雅加达ADD_Airport CGK SIA
//我的代码
public static void main(String[] args) throws FileNotFoundException {
// input files
File inputD = new File("inputDB.txt");
File inputB = new File("inputBookings.txt");
Scanner sc = new Scanner(inputD);
// print writer
PrintWriter out = new PrintWriter("printLog.txt");
// inputDB arrays
// airline info
String[] airlines = new String[sc.nextInt()];
String[] codes = new String[airlines.length];
String[] country = new String[airlines.length];
String[] website = new String[airlines.length];
// airport info
String[] airports = new String[sc.nextInt()];
String[] threeLetter = new String[airports.length];
String[] city = new String[airports.length];
String[] flights = new String[sc.nextInt()];
String command = null;
out.println("--------------- Air Ticket Reservation System Log ---------------\n");
do {
command = sc.next();
if (command.equalsIgnoreCase("ADD_airline")) {
add_airline(airlines, sc, out, codes, country, website)
public static void add_airline(String[] airlines, Scanner sc, PrintWriter out, String[] codes, String[] country,
String[] website) {
for (int i = 0; i < airlines.length; i++) {
codes[i] = sc.next();
airlines[i] = sc.next();
country[i] = sc.next();
website[i] = sc.next();
out.println("(New Airline Added) " + "Airline No.: " + codes[i] + " Airline: " + airlines[i] + " Hub: "
+ country[i] + " URL: " + website[i]);
out.println("-------------------\n");
}
}它应该看起来像这样:
(新增航空公司)航空公司编号: SV航空公司: Saudia集线器:Saudia: saudia.com
(新增航空公司)航空公司编号: EK航空公司:阿联酋航空枢纽: UE网址: emirates.com
(新增航空公司)航空公司编号: NS航空公司: NasAir枢纽: SA URL: flynas.com
(新增航空公司)航空公司编号: BA航空公司: BritishAirways枢纽:英国网址: britishairways.com
(新增航空公司)航空公司编号: KL航空公司:荷兰枢纽: NL网址: klm.com
(新增航空公司)航空公司编号: GF航空公司: GulfAir枢纽: BH网址: gulfair.com
发布于 2021-03-11 20:10:02
我相信你的代码应该是这样的:
for each line from inputFile:
split (by ' ') that line into array of parts
if part 0 == 'ADD_Airline' then
call `addAirline` method and pass parts 1,2,3,4 to it as parameters
else if part 0 == 'ADD_Airport' then
call `addAirport` method and pass parts 1,2,3 to it as parametershttps://stackoverflow.com/questions/66581135
复制相似问题