请在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。谢谢,本人刚学JAVA,想做想传智播客的测试题,做不出来,起各位高手帮忙,谢谢

解决方案 »

  1.   

    1、通过try-catch块捕获IllegalArgumentException异常;
    2、将输入的字符数组转化成String类对象实例,通过String类的indexOf(String str)方法返回你要的值。
      

  2.   

    就是一个循环判断的过程,楼主看看吧。public class Find {
    public static int find(char[] array, char c) throws IllegalArgumentException{
    if (null == array){
    System.out.println("Array is null!");
    throw new IllegalArgumentException();
    }

    for(int i=0; i<array.length; i++){
    if (c == array[i])
    return i;
    }

    return -1;
    }
    public static void main(String args[]){
    char[] array1 = new char[]{'a', 'b', 'c', 'd', 'e'};
    char[] array2 = null;

    try {
    System.out.println(find(array1, 'e'));
    System.out.println(find(array1, 'f'));
    System.out.println(find(array2, 'e'));
    }
    catch (Exception e){
    System.out.println("哈哈!");
    }
    }
    }
    结果:
    4
    -1
    Array is null!
    哈哈!
      

  3.   

    你第二点不好,你这样是走了弯路了,组合成String本来就要耗费资源,再用indexOF其实还是在字符数组里查找。