在java中读取文件时出现问题
我正在尝试读取一个文件,并以不同的格式创建一些对象/打印信息 我大部分都是正确的,但由于某种原因,当它循环通过时,每次完成一个if语句时,我都会得到“stringindex超出范围:0”(它将在第一个对象出现之前打印) 我对这个问题做了一些研究,我认为这是因为下一行再次在位置0处寻找字符(ID.charAt(0))。然而,我有另一个程序,我已经这样做了,它的工作非常完美。你们有没有可能看一看,告诉我我在哪里搞砸了 谢谢你的帮助。我以前在这里问过几个问题,你总是帮助我学习 代码 我试图读取的文件在java中读取文件时出现问题,java,string,indexing,Java,String,Indexing,我正在尝试读取一个文件,并以不同的格式创建一些对象/打印信息 我大部分都是正确的,但由于某种原因,当它循环通过时,每次完成一个if语句时,我都会得到“stringindex超出范围:0”(它将在第一个对象出现之前打印) 我对这个问题做了一些研究,我认为这是因为下一行再次在位置0处寻找字符(ID.charAt(0))。然而,我有另一个程序,我已经这样做了,它的工作非常完美。你们有没有可能看一看,告诉我我在哪里搞砸了 谢谢你的帮助。我以前在这里问过几个问题,你总是帮助我学习 代码 我试图读取的文件
S100
Sully
Ross
111-11-1111
8 15 1979
900.00
H205
Joe
Aggie
222-22-2222
3 6 1993
15.25
40
C102
Rev
Elee
333-33-3333
11 22 1985
20000
.065
B115
Johnny
Football
444-44-4444
06 28 1965
12000
.05
400
P206
Miss
Bizbee
555-55-5555
11 06 1977
1.25
1000
X
输入的第一行可能没有内容,只是一个空行(新行字符)。试着在第一条if语句之前打印出ID变量,看看最后会得到什么 输入的第一行可能没有内容,只是一个空行(新行字符)。试着在第一条if语句之前打印出ID变量,看看最后会得到什么 输入的第一行可能没有内容,只是一个空行(新行字符)。试着在第一条if语句之前打印出ID变量,看看最后会得到什么 输入的第一行可能没有内容,只是一个空行(新行字符)。试着在第一条if语句之前打印出ID变量,看看最后会得到什么 这适用于所有的块,但基本上当你这样做时
double salary = input.nextDouble();
它将在扫描器中保留新行字符,因此当您执行下一个String ID=input.nextLine()时代码>,它正在读取该行的剩余部分,该行基本上为空
尝试添加input.nextLine()代码>在每个部分的末尾,例如
double salary = input.nextDouble();
input.nextLine();
另外,您的出生日期是错误的。除了被弃用之外,Date
构造函数还需要year、month、day
order;)中的值 这适用于所有的块,但基本上当你这样做时
double salary = input.nextDouble();
它将在扫描器中保留新行字符,因此当您执行下一个String ID=input.nextLine()时代码>,它正在读取该行的剩余部分,该行基本上为空
尝试添加input.nextLine()代码>在每个部分的末尾,例如
double salary = input.nextDouble();
input.nextLine();
另外,您的出生日期是错误的。除了被弃用之外,Date
构造函数还需要year、month、day
order;)中的值 这适用于所有的块,但基本上当你这样做时
double salary = input.nextDouble();
它将在扫描器中保留新行字符,因此当您执行下一个String ID=input.nextLine()时代码>,它正在读取该行的剩余部分,该行基本上为空
尝试添加input.nextLine()代码>在每个部分的末尾,例如
double salary = input.nextDouble();
input.nextLine();
另外,您的出生日期是错误的。除了被弃用之外,Date
构造函数还需要year、month、day
order;)中的值 这适用于所有的块,但基本上当你这样做时
double salary = input.nextDouble();
它将在扫描器中保留新行字符,因此当您执行下一个String ID=input.nextLine()时代码>,它正在读取该行的剩余部分,该行基本上为空
尝试添加input.nextLine()代码>在每个部分的末尾,例如
double salary = input.nextDouble();
input.nextLine();
另外,您的出生日期是错误的。除了被弃用之外,Date
构造函数还需要year、month、day
order;)中的值 My reason类似于MadProgrammerreason,但不是添加input.nextLine()代码>在每个部分的末尾,我们可以添加
if(input.hasNext()){
}
在while循环结束时只执行一次。我的原因类似于程序员的原因,但不是添加input.nextLine()代码>在每个部分的末尾,我们可以添加
if(input.hasNext()){
}
在while循环结束时只执行一次。我的原因类似于程序员的原因,但不是添加input.nextLine()代码>在每个部分的末尾,我们可以添加
if(input.hasNext()){
}
在while循环结束时只执行一次。我的原因类似于程序员的原因,但不是添加input.nextLine()代码>在每个部分的末尾,我们可以添加
if(input.hasNext()){
}
在while循环结束时只循环一次。非常感谢!现在这更有意义了,一切都很完美。我不知道nextDouble()一直在同一条线上。再次感谢@用户2774647您的出生日期有误,请注意这些错误。输入似乎是月、日、年是的,我实际上为此创建了我自己的日期类,以月、日、年的顺序排列,因此它实际上在我的末端正确输出。对不起,没提那件事!只要它不会让你突然发疯;)非常感谢你!现在这更有意义了,一切都很完美。我不知道nextDouble()一直在同一条线上。再次感谢@用户2774647您的出生日期有误,请注意这些错误。输入似乎是月、日、年是的,我实际上为此创建了我自己的日期类,以月、日、年的顺序排列,因此它实际上在我的末端正确输出。对不起,没提那件事!只要它不会让你突然发疯;)非常感谢你!现在这更有意义了,一切都很完美。我不知道nextDouble()一直在同一条线上。再次感谢@用户2774647您的出生日期有误,