Java 扫描仪正在用0填充我的阵列
对于我的程序,我需要从dat文件中读取并将20个数字存储在一个数组中。但是,我的数组中存储的唯一内容是0。我的扫描仪有问题吗?我可以很好地编译这个程序。但是当我打印数组时,唯一打印的是0,即使我清楚地将它们设置为文件上的下一个int。我已经盯着这个程序看了一段时间,没有发现问题所在。谁能告诉我怎么了 这是我的节目Java 扫描仪正在用0填充我的阵列,java,arrays,java.util.scanner,Java,Arrays,Java.util.scanner,对于我的程序,我需要从dat文件中读取并将20个数字存储在一个数组中。但是,我的数组中存储的唯一内容是0。我的扫描仪有问题吗?我可以很好地编译这个程序。但是当我打印数组时,唯一打印的是0,即使我清楚地将它们设置为文件上的下一个int。我已经盯着这个程序看了一段时间,没有发现问题所在。谁能告诉我怎么了 这是我的节目 import java.util.Scanner; import java.io.*; import java.util.*; public class DuplicateTe
import java.util.Scanner;
import java.io.*;
import java.util.*;
public class DuplicateTesterAP
{
public static void main(String[] args) {
//sets up scanner
Scanner inFile = null;
try
{
inFile = new Scanner(new File("prog415h.dat"));
}
catch(FileNotFoundException e)
{
System.out.println("File not found!!");
System.exit(0);
}
//creates array and declares variables
int[] numbers = new int[20];
int determine = 0;
int space = 0;
我想错误就在这里
//stores values from file into array
for(int i = 0 ; i<numbers.length; i++){
numbers[i] = inFile.nextInt();
}
//creates a duplicateap object
DuplicateAP object = new DuplicateAP(numbers);
//finds the repeating numbers and stores them into an array
object.findRepeat();
//header
System.out.println("The original set of numbers are: ");
//output for original set of numbers
for(int i = 0; i<numbers.length; i++){
System.out.print(numbers[i] + " " );
}
您必须检查扫描仪的下一个标记是否为有效的int值,因此循环如下所示:
int i = 0;
// stores values from file into array
while (inFile.hasNextInt()) {
numbers[i++] = inFile.nextInt();
}
如果该代码使用该输入文件打印所有0,则
new DuplicateAP(numbers)
或object.findRepeat()
清除numbers
数组。既然我们看不到那个代码,我们怎么知道出了什么问题“我想错误就在这里”???为什么要假设调试会告诉你答案?只需调试并检查每个infle.nextInt()的值代码>尝试将for输出放在for输入的后面,然后进行测试that@user3437460我该怎么做?如果文件中的数字超过20个,这可能会从数组末尾消失。
int i = 0;
// stores values from file into array
while (inFile.hasNextInt()) {
numbers[i++] = inFile.nextInt();
}