Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中读取文件时出现问题_Java_String_Indexing - Fatal编程技术网

在java中读取文件时出现问题

在java中读取文件时出现问题,java,string,indexing,Java,String,Indexing,我正在尝试读取一个文件,并以不同的格式创建一些对象/打印信息 我大部分都是正确的,但由于某种原因,当它循环通过时,每次完成一个if语句时,我都会得到“stringindex超出范围:0”(它将在第一个对象出现之前打印) 我对这个问题做了一些研究,我认为这是因为下一行再次在位置0处寻找字符(ID.charAt(0))。然而,我有另一个程序,我已经这样做了,它的工作非常完美。你们有没有可能看一看,告诉我我在哪里搞砸了 谢谢你的帮助。我以前在这里问过几个问题,你总是帮助我学习 代码 我试图读取的文件

我正在尝试读取一个文件,并以不同的格式创建一些对象/打印信息

我大部分都是正确的,但由于某种原因,当它循环通过时,每次完成一个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您的出生日期有误,