黑马程序员技术交流社区
标题:
利用map知识点,获取字符串“kakga”中每一个字母出现的次数
[打印本页]
作者:
泡沫__opt
时间:
2014-11-26 20:32
标题:
利用map知识点,获取字符串“kakga”中每一个字母出现的次数
<p>package question;
import java.util.TreeMap;
/**
* 利用map知识点,获取字符串“kalskga”中每一个字母出现的次数
*
* 例:a(2)b(4)f(1)
*
* @author Administrator
*
*/
public class Qtest19 {
public static void main(String[] args) {
String str = "kalskga";
// 将字符串转换成char数组
char[] ch = str.toCharArray();
//调用charToTreeMap()
TreeMap<Character, Integer> tm = charToTreeMap(ch);
System.out.println(tm);
}
public static TreeMap<Character, Integer> charToTreeMap(char[] ch) {
// 创建TreeMap对象
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
for (int i = 0; i < ch.length - 1; i++) {
int n = 1;
for (int j = 1 + i; j < ch.length; j++) {
if(ch[i] == ch[j]){
n++;
}
}
tm.put(ch[i], n);
}
return tm;
}
}</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>哪里出问题了?求指教啊……
</p>
复制代码
作者:
LuckyMe
时间:
2014-11-26 21:23
本帖最后由 LuckyMe 于 2014-11-26 21:47 编辑
第33行,TreeMap 存入键值对的时候新值会替换老值。如果k出现了2次,第一个k存入(k,2),第二个k存入(k,1)。n每次开始都是1,这样的话出现3次及以上的字母也会变成2次呢。还是毕老师视频中的那个方法好啊。
作者:
泡沫__opt
时间:
2014-11-27 10:58
LuckyMe 发表于 2014-11-26 21:23
第33行,TreeMap 存入键值对的时候新值会替换老值。如果k出现了2次,第一个k存入(k,2),第二个k存入(k,1)。n ...
谢了~~搞明白了~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2