1.我查了API,String的indexOf方法里没有接收数组作为参数的。if(str.indexOf(ch,n)!=-1)是想说if(str.indexOf((int)ch[n],n)!=-1)?
2.tr.put(ch,num);第一个参数应该是字符,但传的是字符数组类型的。
3.就算上面没问题了,但代码
for(int n=i;n<ch.length;n++)
{
if(str.indexOf(ch,n)!=-1)
{
num=num+1;
n=str.indexOf(ch,n);
}
}
比如n开始为1,找ch[1]这个字符,最后num得到个5,外循环的i是一个一个递增,比如ch[1]这个字符是b,最后出现的位置是ch[8],当你i增加到8时,里面的循环又开始找b这个字符,因为后面没有了,所以num肯定为1,再调用put方法,键相同,原来的值5会被此时的1取代.
4.暂时就看出这么些问题,我没去运行,不清楚具体情况。
5.你说打印出结果了,值是1,那说明可以编译运行,但是比如TreeMap<Character,Integer>,明显键是Character型,但tr.put(ch,num),ch是char[],这怎么通过的,怎么回事? |