我有一项任务,我必须制作一个简单的银行应用程序。我需要将客户信息存储在具有名字和姓氏,客户ID和余额的文件中。然后,我需要创建一个菜单选项来检查余额,提款,存款和退出。我目前遇到的问题是当用户想要检查余额时试图显示余额。平衡是在我的文件的第四行,我不知道如何只显示第四行,然后能够使用该数字来添加或减去一个数字。我试图在switch语句中的情况1中执行此操作。任何提示都将不胜感激。
import java.util.Scanner;
import java.text.DecimalFormat;
import java.io.*;
public class bank {
public static void main(String[] args) throws IOException {
String fileName; // stores the name of the file
String bankCustomer; // used to display the customers bank information
int menuOption = 0; // allows the user to enter a number so they can select what they want to do
Scanner keyboard = new Scanner(System. in );
// enter the file name to see customer information
System.out.print("enter file name ");
fileName = keyboard.nextLine();
File file = new File(fileName);
Scanner inputFile = new Scanner(file);
// read customer information from file i need this
while (inputFile.hasNext()) {
bankCustomer = inputFile.nextLine();
System.out.println(bankCustomer);
}
System.out.println("Please enter the number for the following:\n 1) Balance \n 2) Deposit + \n 3) Withdrawal \n 4) Quit ");
menuOption = keyboard.nextInt();
switch (menuOption) {
case 1:
// need to show balance how do i do that?
while (inputFile.hasNext()) {
bankCustomer = inputFile.nextLine();
System.out.println(bankCustomer);
}
break;
default:
System.out.println("Invalid choice");
}
inputFile.close();
}
}
答案 0 :(得分:0)
有很多方法可以做到这一点。一种方法是从Scanner
对象读取所有行并将其转换为List(ArrayList)或String Array。也就是说,数组或列表中的每个项目都对应于文件的一行。
然后,列表或数组的索引将提供该特定文件的内容。
=============================================== ==============================
好的,根据您的评论,既然您还没有学习阵列,您可以按照您的银行客户名称的方式进行操作
String bankCustomer = inputFile.nextLine();
//Assuming second line contains account number
String bankAccountNumber = inputFile.nextLine();
// Assuming third line contains account type.
String bankAccountType = inputFile.nextLine();
// Fourth line has your account balance
String bankAccountBalanceStr = inputFile.nextLine();
double bankAccountBalance = 0d;
if(null != bankAccountBalanceStr && 0 > bankAccountBalanceStr.length()){
bankAccountBalance = Double.parseDouble(bankAccountBalanceStr);
}
当然,答案只是指示性的,并没有进行所有空检查,并假设文件格式与您所说的完全相同。
答案 1 :(得分:0)
最简单的方法是简单地阅读并忽略前三行,例如:
for (int i = 0; i < 3; i++)
inputFile.nextLine();
然后使用Integer.parseInt()方法将第四行读作整数。
int total = Integer.parseInt (inputFile.nextLine ());
请注意,在两个片段中都忽略了错误和异常处理。
答案 2 :(得分:0)
如果不重新创建数据和代码,您似乎正在向银行客户读取整行数据。如果数据文件结构以逗号分隔,则可以将该行拆分为组件。定义数据类
public static class customer {
public String first;
public String last;
public String customer_i;
public double balance:
}
将行转换为数据类后,您可以通过以下方式引用每一行:
balance = customer.balance. etc.
这是近似值,但我希望它有所帮助。
答案 3 :(得分:0)
您可以读取3行而不保存其值, 或搜索每一行的关键字:
int balance;
if(!bankCustomer.indexOf("balance") != -1)
{
balance = Integer.parseInt(bankCustomer);
}