Java 数组:输入数据
假设此方法要求用户提供已创建的包含数字列表的文件名,如果文件不存在,我必须让用户知道。我不知道如何将文件中的数字分配给新数组Java 数组:输入数据,java,arrays,Java,Arrays,假设此方法要求用户提供已创建的包含数字列表的文件名,如果文件不存在,我必须让用户知道。我不知道如何将文件中的数字分配给新数组 public static int[] inputData() throws IOException { int count = 0; System.out.print("enter input filename: "); File myFile = new File("input.txt"); if(!myFile.ex
public static int[] inputData() throws IOException
{
int count = 0;
System.out.print("enter input filename: ");
File myFile = new File("input.txt");
if(!myFile.exists())
{
System.out.print("file does not exist ");
System.exit(0);
}
Scanner inputFile = new Scanner(myFile);
while(inputFile.hasNext() && count < ARRAY_SIZE)
{
array[count++] = input.nextInt();
}
return array[];
}
public static int[]inputData()引发IOException
{
整数计数=0;
System.out.print(“输入文件名:”);
File myFile=新文件(“input.txt”);
如果(!myFile.exists())
{
System.out.print(“文件不存在”);
系统出口(0);
}
扫描仪输入文件=新扫描仪(myFile);
while(inputFile.hasNext()&&count
您需要学习如何声明和分配一个新数组,并将其传递回去。它看起来将是一个int
数组,当您调用new
时,您将使其具有一定的大小(是否已在某处定义了array\u size
)。看
(需要注意的是,在数组上的
循环中使用外部上限通常不是一个好主意。该数组带有内置的长度,您可以使用该长度将始终是正确的大小。)您在哪里定义变量数组
你的问题是你不知道你需要多大的数组。最好的选择是使用ArrayList,因为这允许动态调整大小。(因此,它需要是整数列表,而不是整数)
公共静态整数[]inputData()引发IOException
{
List fileData=new ArrayList();
整数计数=0;
System.out.print(“输入文件名:”);
File myFile=新文件(“input.txt”);
如果(!myFile.exists())
{
System.out.print(“文件不存在”);
系统出口(0);
}
扫描仪输入文件=新扫描仪(myFile);
while(inputFile.hasNext())
{
add(inputFile.nextInt());
}
返回fileData.toArray(新整数[fileData.size()]);
}
到目前为止它是如何失败的?是我缺少了一段代码,还是你从来没有声明过数组,你可以使用int[]array=new array[size]来声明数组,其中size是数组的大小。这并不能真正回答提问者的问题,这是关于专门学习使用数组的问题(看起来像是一个类).我理解这个问题的方式是“我需要将这些数字放入一个数组”,这就是我向他们展示的方法。它们最终得到一个基于文件输入的整数数组。这怎么不能回答这个问题呢?(这让我问你为什么否决了这个…)很公平,如果编辑允许,我会删除否决票,但这个问题似乎是为了教OP使用Java数组语法。此外,您返回的是一个整数[]
,而不是一个整数[]
,这可能与作业相关。谢谢。问题是关于他们试图做什么有点模糊,无论是学习数组,还是实现目标。我想我们的理解不同。我确实提到,由于使用了一个列表,它将是一个整数列表,而不是整数列表,并且更改了数组以匹配(部分原因是我太懒了,没有自己编写循环来转换它们…)。当然,您可以真正地离开深层,使用Java 8 lambda来转换。。。
public static Integer[] inputData() throws IOException
{
List<Integer> fileData = new ArrayList<Integer>();
int count = 0;
System.out.print("enter input filename: ");
File myFile = new File("input.txt");
if(!myFile.exists())
{
System.out.print("file does not exist ");
System.exit(0);
}
Scanner inputFile = new Scanner(myFile);
while(inputFile.hasNext())
{
fileData.add(inputFile.nextInt());
}
return fileData.toArray(new Integer[fileData.size()]);
}