Java hasNext()方法混淆
我似乎无法让for循环用特定的文本行填充字符串数组。为清楚起见:inputFile是我在中读取的一个文件,看起来有点像:Java hasNext()方法混淆,java,oop,io,Java,Oop,Io,我似乎无法让for循环用特定的文本行填充字符串数组。为清楚起见:inputFile是我在中读取的一个文件,看起来有点像: 3 Bob 121 124 124 Susan 454 241 524 Richie 789 124 547 Bob Susan Richie 3表示文件中有多少“学生”,而我的起始值是1而不是0 actualFile是我想要存储各种名称的字符串数组。 这是我的密码 注意:我不想为此使用数组列表。只是数组 for (int z = 1; inputFile
3
Bob
121
124
124
Susan
454
241
524
Richie
789
124
547
Bob
Susan
Richie
3表示文件中有多少“学生”,而我的起始值是1而不是0
actualFile是我想要存储各种名称的字符串数组。
这是我的密码
注意:我不想为此使用数组列表。只是数组
for (int z = 1; inputFile.hasNext(); z = z +3) {
actualFile(z) = actualFile + "\n" + inputFile;
}
System.out.println(actualFile);
我希望最终输出如下所示:
3
Bob
121
124
124
Susan
454
241
524
Richie
789
124
547
Bob
Susan
Richie
编辑Jordon Johns的重播:
我没有得到以下固定代码的任何输出:
String [] actualFile = new String [50];
for (int z = 1; inputFile.hasNext(); z = z +3) {
actualFile[z]= actualFile + "\n" + inputFile;
}
System.out.println(actualFile);
我收到错误消息:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 52
inputFile是我准备的一个文件,如下所示:
System.out.print("Enter file name: ");
String userFile = in.nextLine();
File file = new File(userFile);
Scanner inputFile = new Scanner(file);
我猜是这样的。我不知道为什么不使用
ArrayList
int maxZ = inputFile.nextInt(), z = 0;
while(inputFile.hasNext()){
if(!inputFile.hasNextInt()){
if(z < maxZ){
actualFile[z] = inputFile.next();
z++;
}
}
else inputFile.next();
}
for(int i = 0; i < actualFile.length; i++){
System.out.println(actualFile[i]);
}
int maxZ=inputFile.nextInt(),z=0;
while(inputFile.hasNext()){
如果(!inputFile.hasNextInt()){
if(z
注意:这是一种糟糕的方法,几乎总是会导致异常,这就是为什么ArrayList
在这里会更好
您不能像正在尝试的那样打印数组。您必须循环打印每个元素。您对Java语法和数组了解多少?@SotiriousDelimanlois我只是个初学者。有可能我在这里遗漏了一些我已经知道的非常简单的东西。你认为
actualFile(z)=
有什么作用?你为什么这么认为?我相信actualFile(z)
表示根据for循环的增量将信息存储到右侧。我认为这是因为它在matlab中就是这样工作的。这感觉像是一个作业?无论如何,问题到底是什么?除非actualFile()恰好是某个方法,否则actualFile(z)不是有效语法。实际文件[z]可能是您的意思。提供更多关于您遇到了什么问题的详细信息。(你的产出是多少?)