int position[] =new int[]{};[/code]这个定义错了!你即没有动态的为它指定默认大小,也没有静态的为它指定元素
一般定义数组有两种方式;[code=java]int position[] =new int[chs.length];//动态初始化 每个数组元素值为 0
int position[] =new int[]{1 , 2 , 3 , 4};//静态[/code]改成这样试试
int position[] =new int[chs.length];
就是这样子[code=java]public class Test2
{
public static void main(String args[])
{
char chs[]=new char[]{'3','b','a','c','f','5'};
char ch='b';
try
{
System.out.print(check(chs,ch));
} catch (Exception e)
{
e.printStackTrace();
}
}
public static int check(char[]chs,char ch) throws Exception
{ //ArrayList<Integer> list=new ArrayList<Integer>();
//int position[] =new int[]{}; 这是你原来的
int position[] =new int[chs.length];
int times=0;
if(chs==null)
{
throw new Exception("IllegalArgumentException");
}
for(int i=0;i<chs.length;i++)
{
if(ch==chs)
{
//list.add(i);
position[times]=i;
times++;
}
}
if(position.length==0)
{
return -1;
}
//return (Integer) list.get(0);
return position[0];
}
} |