黑马程序员技术交流社区

标题: 要怎么判断一个元素是不是属于一个数组? [打印本页]

作者: 刘辉    时间: 2013-3-10 00:49
标题: 要怎么判断一个元素是不是属于一个数组?
/*
在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,
如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),
否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,
如果传入的数组为null,应抛出IllegalArgumentException异常。
在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,
例如,字符不存在,字符存在,传入的数组为null等。

char[] ch ={'找','孙','前','孙','里','周','无'};
*/
class  ExceptionArray
{
        public static void main(String[] args)
        {
                char[] array={'赵','钱','孙','李','周','吴','郑','王','孙'};
               
                if (array==null)
                        throw new IllegalArgumentException("空数组异常");
                PrintArray(array);
                SeekArray(array,'孙');
        }
        public static int SeekArray(char[] array,char s)
        {
                for(int x=0;x<array.length;x++)
                {
                        if(array[x]==s)
                        {
                                return x;
                                //System.out.println(x);
                        }
                        //if(!(s instanceof array))
                                //System.out.println("-1");
                }
                return -1;

        }
        public static void PrintArray(char[] array)
        {
                for(int x=0;x<array.length;x++)
                {
                        System.out.print("'"+array[x]+"'");
                }
                System.out.println();
        }
}

作者: 李辉    时间: 2013-3-10 05:09
Arrays工具类提供了在数组中查找元素的功能,不过它只提供了binarySearch(二分法查找),只能查找排序后的数组。举例如下:
import java.util.*;
public class  ExceptionArray
{
        public static void main(String[] args)
        {
                char[] array={'赵','钱','孙','李','周','吴','郑','王','孙'};
               
                if (array==null)
                        throw new IllegalArgumentException("空数组异常");
                Arrays.sort(array);
                System.out.println(Arrays.binarySearch(array, '赵'));
        }
        
}
我不确定你的问题究竟是什么?你自己已经写了在数组中查找元素的代码,为什么标题里又那么问。
作者: amen0205    时间: 2013-3-10 05:26
  1. class  ExceptionArray
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 char[] array={'赵','钱','孙','李','周','吴','郑','王','孙'};
  6.                
  7.                 if (array==null)
  8.                         throw new IllegalArgumentException("空数组异常");
  9.                 PrintArray(array);
  10.                 int i=SeekArray(array,'孙');
  11.                                
  12.                                 if(i!=-1)
  13.                                         System.out.println(array[i]);
  14.                                 else
  15.                                         System.out.println("改姓不存在");

  16.         }
  17.         public static int SeekArray(char[] array,char s)
  18.         {
  19.                 for(int x=0;x<array.length;x++)
  20.                 {
  21.                         if(array[x]==s)
  22.                         {
  23.                                 return x;
  24.                                 //System.out.println(x);
  25.                         }
  26.                         //if(!(s instanceof array))
  27.                                 //System.out.println("-1");
  28.                 }
  29.                 return -1;
  30.         }
  31.         public static void PrintArray(char[] array)
  32.         {
  33.                 for(int x=0;x<array.length;x++)
  34.                 {
  35.                         System.out.print("'"+array[x]+"'");
  36.                 }
  37.                 System.out.println();
  38.         }
  39. }
复制代码
我把你的代码又加了 个if语句 用来输出  如果只是判断 应该更容易

如果你是要问红色部分  注释掉的代码为什么不行的话?     

instanceof  是用来来判断一个对象是否属于一个类  不能用来判断一个字符是否属于一个数组





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2