初学者求解java数组下标越界问题

问题描述

初学者求解java数组下标越界问题
public class Test{
public static void main(String[]args){
System.out.println(args[0]);
System.out.println(args[1]);
}
}

doc显示Exception in thread ""main"" java.lang.ArrayIndexOutOfBoundsException:0 at Test.main(Test.java:3)
这是照着书上打的怎么还有错啊

解决方案

没有传递参数啊,你需要先判断args是否为空,及其length才能正确使用。
java运行main函数时传递的参数是需要配置的,可以new-application后配置参数,也可直接对已经运行过的main函数进行配置。
流程为Run ->Run Configurations中,参数表单,多个参数间用空格隔开,那么这些参数就会被传递到main的args数组中了。

然后修改你的main,判断是否传入了参数,如果传入了就打印参数:

    public static void main(String[] args) {        if(args!=null&&args.length>0){            System.out.println(""参数1:""+Arrays.toString(args));        }    }

解决方案二:
一个数字只有三个位置,如果你填了四个就越界了。String [] args 参数需要设置才会有

解决方案三:
先要添加args 的参数,在run configurations里面

解决方案四:
运行程序时应该输入参数,如java Test hello word
。至少要输入两个参数

时间: 2025-01-25 03:57:34

初学者求解java数组下标越界问题的相关文章

对象-java JDBC 批量插入的时候报数组下标越界,求大神

问题描述 java JDBC 批量插入的时候报数组下标越界,求大神 代码:private static Boolean Function_User(Map resultMap String sqlString tableType) { // TODO Auto-generated method stub Connection conn=null; PreparedStatement insert_st=null; int count = 0; final int batchSize = 500;

java 环境变量配置-【初学者求解】JAVA环境配置问题

问题描述 [初学者求解]JAVA环境配置问题 输入javac是结果错误.第一个例子小程序也错误. 配置classpath path百度了好多自己都混乱了...最开始把PATH值删掉了,后来又在别人电脑上复制了一个,不知道能用不...这个学期刚开JAVA,连配置都还不会TAT,求教,谢谢... 解决方案 在命令提示符里面输入javac出错表示你的jdk没安装好,或者是环境变量没设置好.1. 假设jdk没装好,可以卸载了重装一次,要卸载完全.2. 假设环境变量没有设置好,那可以按照下面的步骤:环境变

java jdbc mysql null-java mysql jdbc 初学者求解

问题描述 java mysql jdbc 初学者求解 为什么rs.next没有返回结果 解决方案 java-jdbc-MySQLjava mysql JDBC Driver详解Java初学者必过的JDBC关 解决方案二: 下一个断点,看看查询本身这段代码有没有走进来,还是前面连接字符串搞错了,根本没连上. 解决方案三: 不加约束条件时有返回值的 解决方案四: 你好,我也遇到过类似的问题.记录在我的博客 大概情况是下面这样的,希望对你有用. "用中文字符串作为查询条件,查不到结果. 查询条件:&q

c++初学者求解一道结构体,函数题

问题描述 c++初学者求解一道结构体,函数题 声明一个结构体类型Date,包括年月日,即一个日期类型的结构体. 设计一个程序,完成以下对日期的操作,包括以下函数: Date AddDay(Date d, int days):对日期增加days天数,然后返回得到的日期 Date AddMonth(Date d, int months):对日期增加months月数,然后返回得到的日期 Date AddYear(Date d, int years):对日期增加years年数,然后返回得到的日期 int

Java数组 不一定要初始化也可正常使用

数组是大多数编程语言提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组.Java语言的数组变量是引用类型的变量,因此具有Java独有的特性. 在正常的Java开发中,使用Java数组之前,我们都会对数组进行初始化,为数组中的元素分配内存空间.赋值等,但Java数组一定要初始化吗?不初始化可以 么? 其实,java的数组变量是引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量,比如下面这个例子: public class T {

求助大神,初学者一窍不通java

问题描述 求助大神,初学者一窍不通java 在控制台输入一串数字,数字之间有一个空格,比如12 23 36 56 31:经过比较数字大小之后,按大小顺序输出,怎么写代码? 解决方案 更简单点,不用写冒泡排序,将输入的数字放入一个int[]数组中,使用Arrays.sort()方法,然后遍历输出即可! 解决方案二: public static void main(String[] args) { int a[] = { 12, 23, 36, 56, 31}; for (int i = 0; i

数组长度-Java数组创建后长度永远不变

问题描述 Java数组创建后长度永远不变 Java数组创建后长度永远不变,但为何可以进行数组扩容改变,初学不久,求解 解决方案 数组不能动态改变长度,你可以用list动态 解决方案二: 数组不能定义后就不能改变大小了,扩容只是新建一个大的数组进行拷贝,建议使用向量

代码-求解Java语句错在哪儿?

问题描述 求解Java语句错在哪儿? 在一个类中定义了一个全局变量telephoneNumber,通过set与get赋值,通过scanner进行键盘输入,代码如下:![图片说明](http://img.ask.csdn.net/upload/201511/09/1447071827_916266.png) 但运行结果却是下面这样是怎么回事?![图片说明](http://img.ask.csdn.net/upload/201511/09/1447071913_529834.png) 求详解 解决方

java数组程序应该没问题,出现的提示我不会修改

问题描述 java数组程序应该没问题,出现的提示我不会修改 public class e1 { public static void main(String[] args) { int[]a=getSons(10); printArray(a); }//计算一个数因子的个数 public static int getlength(int n){ int count=0; for(int i=1;i<n/2;i++){ if(n%i==0) count++; } return count; }//