import java.util.*;
class StringCountDemo
{
public static String stringCount(String str)
{
char []ch=str.toCharArray();
TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
for(int x=0;x<ch.length;x++)
{
Integer value=tm.get(ch[x]);
System.out.println(x);
System.out.println(value);
if(value==null)
tm.put(ch[x],1);
else
tm.put(ch[x],++value);
}
System.out.println(tm);
return null;
}
public static void main(String[] args)
{
stringCount("abaccdb");
}
}
楼主出现问题可以把每个成员变量都打印出来,就能找到问题的原因
你原来的代码
Integer value=tm.get(ch[x]);
System.out.println(x);
System.out.println(value);
if(value==null)
加上输出语句就发现结果如下
0
null
Exception in thread "main" java.lang.NullPointerException
at StringCountDemo.stringCount(StringCountDemo.java:15)
at StringCountDemo.main(StringCountDemo.java:23)
明显循环进去了
还有发现出错语句为 tm.put(ch[x],++value);你可以将它注释掉再看结果。。 |