2 sinat 25136209 sinat_25136209 于 2017.01.04 15:42 提问

一个关于java的小问题

题目是这样的
在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置

  • (序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,
  • 应抛出IllegalArgumentException异常。
  • 在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等

    然后这个是我写的代码,但是我把数组设置为null的时候并不抛出异常,,还有就是
    我设置输入不在数组范围的字符,也没有返回-1.。求前辈们帮忙看看~~
    图片说明

4个回答

yushiyoufight
yushiyoufight   Rxr 2017.01.04 15:54

if(aa == null) {

}
什么都没做,怎么跑异常
你可以if(aa == null) {
throw new IllegalArgumentException();
}

pkjxt
pkjxt   2017.01.04 16:03
  1. 数组设置为 null 不抛出异常: 因为数组为 null, 执行 if(aa==null), 并没有其他操作,所以不会 catch 到异常,除非在if 下直接写抛出异常;
  2. 这个有返回值,只不过你没有接收的对象,如: int num = t8.test(null, 'f'); 那这个 num 就有值;
  3. 这个你写的程序就是有问题的,判断 if (a == aa[i]) 下面应该也要加 return, 不然这个程序一直返回的都是 -1,还有你说的题目一些校验的你再加一下。
LM5463640
LM5463640   2017.01.04 16:32
public int test(char[] aa,char a) throws IllegalAccessException{
        if(aa==null){
            throw new IllegalAccessException();
        }else{
            for(int i = 0;i<aa.length;i++){
                if(a==aa[i]){
                    System.out.println("数据存在---"+i);
                    return i;
                }
            }
        }
        return -1;
    } 
fenghui187
fenghui187   2017.01.04 18:28

给你提一个小小的建议,题目要求你返回位置的话最好不要在函数里面有输出语句~

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!