黑马程序员技术交流社区
标题:
取出一行字符串的个数问题
[打印本页]
作者:
zhouxp3323
时间:
2012-3-30 21:02
标题:
取出一行字符串的个数问题
public class CalculateChar {
public static void main(String[] args) {
//String s = charCount("abadcdffbaeba");
ArrayList<String> al = charCount("abadcdffbaeba");
System.out.println(al);
}
public static ArrayList<String> charCount(String str){
char[] chs = str.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
int count = 0;
for(int x=0;x<chs.length;x++){
if((chs[x]>='a'&&chs[x]<='z') || (chs[x]>='A'&&chs[x]<='Z')){
Integer value = tm.get(chs[x]);
if(value!=null)
、 count++;
tm.put(chs[x], count);
count = 0;
}
}
System.out.println(tm);
}
我想先把这个字符串变成treeMap集合打印出来,哪里出什么问题了吗?
作者:
李东志
时间:
2012-3-31 09:50
对字母次数计算时有点小问题,此处并不需要定义变量count,当字母第一次出现时value值赋值成1就可以了,其他时候value++;
可以这样修改:
Integer value = tm.get(chs[x]);
if(value!=null)
value++;
else{
value=1;
}
tm.put(chs[x], value);
还有一点格式问题,你的静态方法charCount没有添加返回值。
作者:
李涛涛
时间:
2012-3-31 10:13
charCount()这个返回值在哪里?你需要打印的是TreeMap里面的元素,你的代码思路有问题:
建议对value值的判断改写
if(value == null)
count =0;
count++;
tm.put(chs[x], count);
这样子可以实现你想要的效果,你上面的写法,判断出来字母的个数永远是1(即便不只出现一次)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2