【发布时间】:2019-10-17 02:52:33
【问题描述】:
所以在这个问题中,我们有一个文件,其中包含基于驾驶员的大量数据,其中包括驾照号码、驾照类别、名字、姓氏、地址、郊区、邮政编码、扣分和驾照状态。问题是只打印那些许可证状态为暂停的数据集。它必须印有执照号码、名字、姓氏、地址、郊区和扣分。
我尝试先打印整个文件,然后将它们分配到单独的内存文件中。然后使用 .equalsIgnoreCase("Suspended") 尝试仅打印暂停的数据集。
第一次尝试:
try {
File inFile = new File("Driver.txt");
Scanner inputFile = new Scanner(inFile);
String value;
String[] values;
while (inputFile.hasNext()) {
value = inputFile.nextLine();
values = value.split(",");
System.out.println("Licence Number: " + "\t" + values[0]);
System.out.println("First Name:" + "\t" + "\t" + values[2]);
System.out.println("Last Name: " + "\t" + "\t" + values[3]);
System.out.println("Suburb: " + "\t" + "\t" + values[5]);
System.out.println("Demerit Points: " + "\t" + values[7]);
System.out.println("Licence Status: " + "\t" + values[8]);
System.out.println();
String licenceStatus = null;
values[8] = licenceStatus;
System.out.println(licenceStatus);
System.out.println();
/*if (licenceStatus.equalsIgnoreCase("Suspended")) {
System.out.println("Listed below are the currently suspended drivers. ");
System.out.println();
System.out.println("Licence Number: " + "\t" + values[0] );
System.out.println("First Name:" + "\t" + "\t" + values[2]);
System.out.println("Last Name: " + "\t" + "\t" + values[3]);
System.out.println("Address: " + "\t" + "\t" + values[4] );
System.out.println("Suburb: " + "\t" + "\t" + values[5]);
System.out.println("Demerit Points: " + "\t" + values[7]);
System.out.println();
} */
}
} catch (IOException e) {
System.out.println("File not found!");
}
Second Attempt:
try {
File inFile = new File("Driver.txt");
Scanner inputFile = new Scanner(inFile);
while (inputFile.hasNext()) {
String licenceNumber = inputFile.next();
System.out.println("Licence Number: " + licenceNumber + " ");
String licenceClass = inputFile.next();
System.out.println("Licence Class: " + licenceClass + " ");
String firstName = inputFile.next();
System.out.println("First Name:" + firstName + " ");
String lastName = inputFile.next();
System.out.println("Last Name: " + lastName + " ");
String address = inputFile.next();
System.out.println("Address: " + address + " ");
String suburb = inputFile.next();
System.out.println("Suburb: " + suburb + " ");
int postCode = inputFile.nextInt();
System.out.println("Postcode: " + postCode + " ");
int demeritPoints = inputFile.nextInt();
System.out.println("Demerit Points: " + demeritPoints + " ");
String licenceStatus = inputFile.next();
System.out.println("Licence Status: " + licenceStatus + " ");
System.out.println();
/* if (licenceStatus.equalsIgnoreCase("Suspended")) {
System.out.println("Listed below are the currently suspended drivers. ");
System.out.println();
System.out.println("Licence Number: " + "\t" + `enter code here`licenceNumber );
System.out.println("First Name:" + "\t" + "\t" + firstName);
System.out.println("Last Name: " + "\t" + "\t" + lastName);
System.out.println("Address: " + "\t" + "\t" + address );
System.out.println("Suburb: " + "\t" + "\t" + suburb);
System.out.println("Demerit Points: " + "\t" + demeritPoints);
System.out.println();
} */
}
} catch (IOException e) {
System.out.println("File not found!");
}
它应该像这样打印:
许可证号:######## 名: ######## 姓: ######## 地址:######## 市郊:####### 扣分:##
【问题讨论】:
-
您已经向我们展示了您尝试了什么以及输出应该是什么样的,但您并没有真正解释问题所在。而且,用于打印“暂停”驱动程序的代码已被完全注释掉,这当然无济于事......
-
是的,我明白,暂停的代码已被注释掉,因为我试图弄清楚如何按顺序打印它们。但是我已经找到了解决方案并且它有效!谢谢!