关于java,有哪位大神能帮忙看这代码分别是什么意思吗?

case StreamTokenizer.TT_NUMBER:
s = Double.toString(st.nval);
break;
case StreamTokenizer.TT_WORD:
s = st.sval; // Already a String
break;
default: // single character in ttype
s = String.valueOf((char)st.ttype);
}
if(counts.containsKey(s))
((Counter)counts.get(s)).increment();
else
counts.put(s, new Counter());
}

StreamTokenizer 这是一个枚举类,
前面有个switch(表达式) case 是如果的意思,也就是switch里面的表达式如果等于case这里的值就走这一段代码,Double.toString(st.nval);这个就是把string强转为double类型
也就是这个枚举确定如果传入的是一个数字类型就转化为double没有break,上面的走了还会走下面的,有了就会直接跳出,default:就是不是上面任意一种情况,就走这里,有点像else。

这个就是一个switch的语句啊,switch的参数是StreamTokenzier的枚举类的实例
定义的字符串s在switch分支中,如果是Number数值,则转成字符串;如果是字符串,直接使用;其他则转成字符串。
然后再统计该字符s出现的次数,使用Counter类统计,如果存在则自增,不存在则存入统计数值。
就是一个很简单的语法,测试一下,弄明白流程,就容易理解了。