我的java学习-main方法参数问题

今天看到一个问题,有朋友提问说,main方法里参数想测试下,结果老提示java.lang.ArrayIndexOutOfBoundsException,不知道出错在什么地方。原程序是这样的。

public class Test2{
    public static int find_e(String[][] x, String y){
        for(int k = 0; k < x.length; k ++)
            if(x[k][0].equals(y))
                return k;
        return -1;
    }
     public static int find_c(String[][] x, String y){
        for(int k = 0; k < x.length; k ++)
            if(x[k][1].equals(y))
                return k;
        return -1;
    }
    public static void main(String[] args){
        String[][] x = {
            {"good", "好"}, {"bad", "坏"}, {"work", "工作"}};
        int k;
        String in = args[0];
        if((k = find_e(x, in)) != -1)
            System.out.println(x[k][1]);
        else if((k = find_c(x, in)) != -1)
            System.out.println(x[k][0]);
        else 
            System.out.println("无此单词");
    }    

}

第一眼看到,我以为是在调用方法的时候没有new一个类对象而直接调用方法的原因,但是有static,实际还是没有问题的,可以调用成功。提示的内容不是方法错误,而是数组越界,args[0]这里调用的时候出错。
我明白过来,是调用程序后面参数的时候出错了。网上查资料,main方法里面参数调用问题,果然很多高手都给出了答案。main方法有参数需要调用但是直接运行不带参数,就出现数组越界的错误提示。
main方法里面是可以有参数的,还可以有多个参数,因为String[] args本来就是能够接收多个字符串参数。所以为什么默认的写法是下面的样子,那就是给参数留有余地

public static void main(String[] args){

但是定义了参数而且在程序里面调用的时候是数组形式,实际运行的时候没有带参数,程序就会提示数组越界错误。
解决的办法,如果是命令行模式,使用java Test2 good,这样带上参数的方式来运行就没有问题,顺利的进行。
如果是netbeans或者eclipse,需要在运行的方式里做调整,netbeans里面是运行->设置项目配置->定制,选择定制后出来界面里面在参数一栏里面填上运行时的参数就可以,再运行程序就正常走。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值