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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于泛型和重载的小问题
 首先描述问题,看代码。代码例子:view plaincopy to clipboardprint?import java.util.ArrayList;   public class Test {       public static String test(ArrayList list){           return "";       }       public static Integer test(ArrayList list){           return 1;       } 
数组的两个小问题
1.不可以对数组名(指针常量)进行赋值操作2.对数组进行整体赋值只能在最初声明的时候进行。
数组操作的两个常见小问题
/* 数组操作的两个常见小问题: ArrayIndexOutOfBoundsException:数组索引越界异常 原因:你访问了不存在的索引。 NullPointerException:空指针异常 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。 作用:请自己把所有的场景Exception结尾的问题总结一下。以后遇到就记录下来。  现象,原因,解决方案。 */
java中的数组的常见操作问题
数组操作常见操作     对数组操作最基本的动作就是存和取。     核心思想:就是对角标的操作。     示例:遍历并打印数组元素 class ArrayDemo{ public static void main(String[] args) { int[] arr = {89,34,270,17}; for
AMDD 一个把大问题分成小问题的优化算法
还没看懂,先记下地址“ 这个博客上有基础知识: http://www.cnblogs.com/breezedeus/p/3496819.html 下面是AMDD http://web.stanford.edu/~boyd/admm.html
一个有趣的小问题
有兄弟三人:大毛,二毛,三毛。有帽子五顶:三顶蓝色,两顶红色。将这五顶帽子随机发给三个 兄弟,三兄弟站成一列,后面的人能看见站在他前面的人,按大毛、二毛、三毛的顺序站好。 帽子分发好后,大毛问三毛:你知道你的帽子是什么颜色的吗? 三毛说:我不知道。
关于JAVA import 的一个小问题
有两个简单程序,他们放在同一目录下:1.//FileName:Test.javaimport Show;public class Test {     public static void main(String[] args) {          Show Sungo = new Show();          Sungo.MyName();      }}2.//FileName:Show
一道需要完备逻辑思考的小Java题目(对入小白)
在网易云课堂上的《Java应用基础:入门篇》中有这样一道题,多项式加法: 一个多项式可以表达为x的各次幂与系数乘积的和,比如:(下图中倒数第二项应该是6x,而不是6的x次幂) 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式: 总共要输入两个多项式,
JAVA常见小问题
类型一:数组 1,error:ArryIndexOutOfBoundsException: 数组索引越界异常 原因:访问了不存在的索引; 2,error:NullPointerExcoption: 空指针异常 原因:数组不再只想堆内存却还在访问他;
善于用Java File类解决生活中遇到的一些问题
        在用手机QQ音乐升级完音质后,会将原来的音乐名xxx.mp3,变成了xxx_(1).mp3。由于本人有强迫症,所以自己编写了个方法去转换,其中可以使用File.renameTo()方法将原来的文件改名,然后移动到新的文件夹中。public class ChangeFileName { public static void ChangeFileName(String old...