Java 数组错误超出范围

Java 数组错误超出范围,java,arrays,Java,Arrays,我在运行代码时遇到问题。它编译得很好,但是当我运行它时,我得到了这个错误。 data3.txt文件是一系列数字 错误: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at database3.main(database3.java:6) import java.io.*; import java.util.*; public class database3 { public static

我在运行代码时遇到问题。它编译得很好,但是当我运行它时,我得到了这个错误。 data3.txt文件是一系列数字

错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at database3.main(database3.java:6)
import java.io.*;
import java.util.*;
public class  database3 {
public static void main(String[] args) {

File inputDataFile = new File(args[0]);
Scanner inputFile = new Scanner("data3.txt"); // READ DATA FROM FILE   
int foundvalue = 0;
int d = inputFile.nextInt();
int list[] = new int[d];

for (int i = 0; i < d; i++)
    list[i] = inputFile.nextInt();


System.out.println("Database Server is Ready for Number Lookups!");

Scanner stdin = new Scanner(System.in); //Get user input
double input;
while (stdin.hasNext()){
  input = stdin.nextDouble();
  boolean found = false;
  System.out.println("The number to look up is: " +input);

  for (int j = 0; j < d; j++){
     if(list[j] == input){
        found = true;  
        break;   
     }    
  }
  if(found == true){
     System.out.println(input +" is in the database");
  }
  else{
     System.out.println(input +" is NOT in the database");
  }
}

System.out.println("Goodbye!");
System.exit(0);

}     
}
我的代码:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at database3.main(database3.java:6)
import java.io.*;
import java.util.*;
public class  database3 {
public static void main(String[] args) {

File inputDataFile = new File(args[0]);
Scanner inputFile = new Scanner("data3.txt"); // READ DATA FROM FILE   
int foundvalue = 0;
int d = inputFile.nextInt();
int list[] = new int[d];

for (int i = 0; i < d; i++)
    list[i] = inputFile.nextInt();


System.out.println("Database Server is Ready for Number Lookups!");

Scanner stdin = new Scanner(System.in); //Get user input
double input;
while (stdin.hasNext()){
  input = stdin.nextDouble();
  boolean found = false;
  System.out.println("The number to look up is: " +input);

  for (int j = 0; j < d; j++){
     if(list[j] == input){
        found = true;  
        break;   
     }    
  }
  if(found == true){
     System.out.println(input +" is in the database");
  }
  else{
     System.out.println(input +" is NOT in the database");
  }
}

System.out.println("Goodbye!");
System.exit(0);

}     
}
import java.io.*;
导入java.util.*;
公共类数据库3{
公共静态void main(字符串[]args){
File inputDataFile=新文件(args[0]);
Scanner inputFile=new Scanner(“data3.txt”);//从文件中读取数据
int foundvalue=0;
int d=inputFile.nextInt();
整数列表[]=新整数[d];
对于(int i=0;i
数组越界主要是由于数组中使用了更多变量,或者数组的第一个索引为0,这意味着数组的最后一个索引比其长度小一个。因此,了解这一点后,请查看for循环中的条件,看看是否可以找到并解决问题。尝试一下这个方法,它可能会解决您的问题。

数组越界主要是由于在数组中更多地使用了变量,或者数组的第一个索引为0,这意味着数组的最后一个索引比其长度小一个。因此,了解这一点后,请查看for循环中的条件,看看是否可以找到并解决问题。尝试一下这个方法,它可能会解决您的问题。

数组越界主要是由于在数组中更多地使用了变量,或者数组的第一个索引为0,这意味着数组的最后一个索引比其长度小一个。因此,了解这一点后,请查看for循环中的条件,看看是否可以找到并解决问题。尝试一下这个方法,它可能会解决您的问题。

数组越界主要是由于在数组中更多地使用了变量,或者数组的第一个索引为0,这意味着数组的最后一个索引比其长度小一个。因此,了解这一点后,请查看for循环中的条件,看看是否可以找到并解决问题。尝试一下这个方法,它可能会解决您的问题。

ArrayIndexOutofBounds异常:0
表示存在一个零元素数组

我怀疑所讨论的数组是
args
,如果没有指定命令行参数,它将是一个没有元素的数组<代码>参数[0]也方便地位于第6行,如异常消息所示

与之相比:

public static void main(String[] args) {
  if (args.length < 1) {
     throw new Exception("Specify a filename!");
  }
  File inputDataFile = new File(args[0]);
  ..
publicstaticvoidmain(字符串[]args){
如果(参数长度<1){
抛出新异常(“指定文件名!”);
}
File inputDataFile=新文件(args[0]);
..

然后,在运行程序时传递适当数量的命令行参数,即指定文件名:)

ArrayIndexOutOfBoundsException:0
表示存在一个零元素数组

我怀疑所讨论的数组是
args
,如果没有指定命令行参数,它将是一个没有元素的数组。
args[0]
也方便地位于第6行,如异常消息所示

与之相比:

public static void main(String[] args) {
  if (args.length < 1) {
     throw new Exception("Specify a filename!");
  }
  File inputDataFile = new File(args[0]);
  ..
publicstaticvoidmain(字符串[]args){
如果(参数长度<1){
抛出新异常(“指定文件名!”);
}
File inputDataFile=新文件(args[0]);
..

然后,在运行程序时传递适当数量的命令行参数,即指定文件名:)

ArrayIndexOutOfBoundsException:0
表示存在一个零元素数组

我怀疑所讨论的数组是
args
,如果没有指定命令行参数,它将是一个没有元素的数组。
args[0]
也方便地位于第6行,如异常消息所示

与之相比:

public static void main(String[] args) {
  if (args.length < 1) {
     throw new Exception("Specify a filename!");
  }
  File inputDataFile = new File(args[0]);
  ..
publicstaticvoidmain(字符串[]args){
如果(参数长度<1){
抛出新异常(“指定文件名!”);
}
File inputDataFile=新文件(args[0]);
..

然后,在运行程序时传递适当数量的命令行参数,即指定文件名:)

ArrayIndexOutOfBoundsException:0
表示存在一个零元素数组

我怀疑所讨论的数组是
args
,如果没有指定命令行参数,它将是一个没有元素的数组。
args[0]
也方便地位于第6行,如异常消息所示

与之相比:

public static void main(String[] args) {
  if (args.length < 1) {
     throw new Exception("Specify a filename!");
  }
  File inputDataFile = new File(args[0]);
  ..
publicstaticvoidmain(字符串[]args){
如果(参数长度<1){
抛出新异常(“指定文件名!”);
}
File inputDataFile=新文件(args[0]);
..

然后,在运行程序时传递适当数量的命令行参数,即指定文件名:)

这意味着您的
args[]
数组中没有元素

因为你在这里没有通过任何考试:

public static void main(String[] args) {

因此
args[0]
不包含任何值,这就是错误背后的原因

这意味着
args[]
数组中没有元素

因为你在这里没有通过任何考试:

public static void main(String[] args) {

因此
args[0]
不包含任何值,这就是错误背后的原因

这意味着
args[]
数组中没有元素

因为你在这里没有通过任何考试:

public static void main(String[] args) {

因此
args[0]
不包含任何值,这就是错误背后的原因

这意味着
args[]
数组中没有元素

因为你在这里没有通过任何考试:

public static void main(String[] args) {

因此,
args[0]
不包含任何值,这就是错误背后的原因

args是一个输入字符串数组。