我正在从文件中读取这些信息,需要将信息存储在数组中以将它们打印到另一个文件中。一个是三个字母的代码,一个是城市名称,一个是末尾的字母。我遇到的问题是,当我想阅读它们时,扫描仪会在第二行和第三行中添加“ADD_Airport”字符串。在主方法中,我有它,以便 if(command.equals("ADD_Airport"), 它会激活该方法。第一行按我的意愿工作,但其余部分没有。谢谢
p.s 有谁知道我可以在哪里练习或找到与此接近的例子?谢谢。
这是输入文件
6 9
ADD_Airline SV 沙特航空 SA saudia.com
ADD-_Airline EK Emirates UE emirates.com
ADD_Airline NS NasAir SA flynas.com
ADD_Airline BA BritishAirways UK britishairways.com
ADD_Airline KL Holland 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 巴林 BIA
ADD_Airport CAI 开罗 CIA
ADD_Airport LHR 伦敦 HAL
ADD_Airport AMS 阿姆斯特丹 AAS
ADD_Airport KRT Khartoum KIA
ADD_Airport CGK Jakarta 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 航空公司:沙特航空枢纽:SA URL:saudia.com
(添加新航空公司)航空公司编号:EK 航空公司:Emirates Hub:UE URL:emirates.com
(添加新航空公司)航空公司编号:NS 航空公司:NasAir Hub:SA URL:flynas.com
(添加新航空公司)航空公司编号:BA 航空公司:BritishAirways Hub:英国 URL:britishairways.com
(添加新航空公司)航空公司编号:KL 航空公司:Holland Hub:NL URL:klm.com
(添加新航空公司)航空公司编号:GF 航空公司:GulfAir 枢纽:BH 网址:gulfair.com
答案 0 :(得分:1)
我相信你的代码应该是这样的:
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 parameters