Java 数组错误超出范围
我在运行代码时遇到问题。它编译得很好,但是当我运行它时,我得到了这个错误。 data3.txt文件是一系列数字 错误: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
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是一个输入字符串数组。