【发布时间】:2020-08-10 16:40:10
【问题描述】:
我之前的问题已结束,但建议的答案对我没有多大帮助。很抱歉给您带来不便。
我正在尝试将 fname、lname、address、city、state 和 zip 存储在数组 customerData[30][6] 中。但是,它似乎跳过了我输入信息的行。
代码
public void addCustomer() throws IOException {
Scanner scan = new Scanner(System.in);
int numCustomers = 0;
String[][] customerData = new String[30][7];
System.out.println("how many customers");
numCustomers = scan.nextInt();
BufferedWriter writer = new BufferedWriter(
new FileWriter("/Users/simonshamoon/eclipse-workspace/Final Project/src/customerdata.txt"));
BufferedWriter loginWriter = new BufferedWriter(
new FileWriter("/Users/simonshamoon/eclipse-workspace/Final Project/src/userlogin.txt"));
for (int i = 0; i < numCustomers; i++) {
System.out.println("enter customer data (fname, lname, address, city, state, zip)");
for (int j = 0; j < customerData[i].length; j++) {
customerData[i][j] = scan.nextLine();
}
writer.write(customerData[i][0] + ", " + customerData[i][1] + ", " + customerData[i][2] + ", "
+ customerData[i][3] + ", " + customerData[i][4] + ", " + customerData[i][5] + "\n");
loginWriter.write(customerData[i][0].charAt(0) + customerData[i][1] + ", " + rand.nextInt(10001) + "ASU"
+ ", Customer" + "\n");
}
writer.flush();
writer.close();
loginWriter.flush();
loginWriter.close();
}
输出
how many customers
1
enter customer data (fname, lname, address, city, state, zip)
fname
lname
123 address dr
city
state
zip
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:709)
at Employee.addCustomer(Employee.java:156)
at Employee.displayEmployeeMenu(Employee.java:196)
at BasicMethods.promptUser(BasicMethods.java:48)
at Shop.main(Shop.java:8)
我想要它以便customerData[i][0] = fname、customerData[i][1] = lname 等。我尝试过使用.nextLine 和数组大小,但我相信问题源于address 所需的空间。
【问题讨论】:
-
建议的答案是什么?
-
它已关闭,并且有一个链接指向另一篇关于扫描仪跳过的文章
nextLine() -
StringLatin1.java:48 行的代码是什么?
-
@karan 这是标准库的一部分
-
你错过了一些东西;
scan已使用但未声明;内部for循环运行到customerData[i].length,customerData无处声明。我们可以猜测,但这通常不是一个好主意。另外,哪一行是 156?
标签: java arrays methods java.util.scanner