黑马程序员技术交流社区
标题:
脑子已经晕了,求指出我的错误
[打印本页]
作者:
画饼
时间:
2013-5-23 13:56
标题:
脑子已经晕了,求指出我的错误
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Strcc().Strcaozuo("a0sjsssd");
//System.out.println("你好");
}
}
class Strcc{
int i,y;
int o ;
Character Cr=null;
Character BNr =null;
HashMap Msp=new HashMap();
Set Hst=null;
public String Strcaozuo(String Str){
for(i=0;i<(Str.length()+1);i++){
o=1;
for(y=i+1;y<Str.length();y++){
Cr=Str.charAt(i);
BNr=Str.charAt(y);
if(Cr.equals(BNr)){
o++;
Msp.put(Cr, o);
Hst=Msp.keySet();
}
} Iterator it =Hst.iterator();
while(it.hasNext()){
Object Isc =it.next();
System.out.println(Isc+"("+Msp.get(Isc)+")");
}
}
return Str;
}
}
作者:
陈潜
时间:
2013-5-23 14:07
楼主 能不能给出需求。。需要达到什么目的?这个变量定义的,,,是很晕啊
作者:
画饼
时间:
2013-5-23 15:22
抱歉各位,菜鸟英文不好,变量随便定义的,目的就是统计字符串里面的每个字符出现的次数
作者:
徐启坤
时间:
2013-5-23 15:37
楼主,这种要求还是用TreeMap吧,你看看下面的程序
import java.util.*;
public class treemap
{
public static void main(String[] args)
{
charCount("a0sjsssd");
}
public static void charCount(String str)
{
char[] chs = str.toCharArray(); //将字符串转换为字符数组
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>(); //定义TreeMap存放结果
for(int x=0; x<chs.length; x++)
{
if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z')) //判断字符是否是字母
continue;
Integer value = tm.get(chs[x]); //获取字符对应的值,判断字符是不是已经存在
if(value==null)
{
tm.put(chs[x],1); //如果不存在就将1存进去
}
else
{
value = value + 1; //如果存在即将值加1
tm.put(chs[x],value);
}
}
System.out.println(tm); //简单的输出结果,你可以根据需要修改输出形式
}
}
复制代码
作者:
yanzhigang
时间:
2013-5-23 15:40
01.import java.util.Map;
02.public class treemap
03.{
04. public static void main(String[] args)
05. {
06. charCount("a0sjsssd");
07. }
08.
09. public static void charCount(String str)
10. {
11. char[] chs = str.toCharArray();
12.
13. TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
14.
15. for(int x=0; x<chs.length; x++)
16. {
17. if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))
18. continue;
19. Integer value = tm.get(chs[x]);
20. if(value==null)
21. {
22. tm.put(chs[x],1);
23. }
24. else
25. {
26. value = value + 1;
27. tm.put(chs[x],value);
28. }
29.
30.
31. }
32. System.out.println(tm);
33.
34. }
35.
36.}
作者:
HM张博文
时间:
2013-5-23 15:47
楼主以后定义变量不要用o了,因为和0很像哦
作者:
Super_Class
时间:
2013-5-23 16:06
Map集合是双列集合,没有继承Iterable。所以Map不能迭代。也就是它没有迭代器
想要得到Map集合中的元素:通常有两种方法:
方法1:|--keySet 方法 可以将所有键,将键变成Set集合
使用方法:
Set<Integer> keyset = map.keySet();
map.put(3, "zhangsan");
map.put(4, "lisi");
map.put(6, "zhousan");
map.put(8, "wuwuwu"); //键不能相同,否则会覆盖
for(Iterator<Integer> iterator = keyset.iterator();iterator.hasNext();){
String val = (String)map.get(iterator.next()); //这里iterator.next();得到的是key
System.out.println(val);
}
复制代码
方法2:|---entrySet方法
该方法将键和值得映射关系作为对象存储到了Set集合中。
使用方法:
Set<Map.Entry<Integer, String>> entryset = map.entrySet();
map.put(3, "zhangsan");
map.put(4, "lisi");
map.put(6, "zhousan");
map.put(8, "wuwuwu");
for(Iterator<Map.Entry<Integer, String>> iterator = entryset.iterator();iterator.hasNext();){
Map.Entry<Integer, String> me = iterator.next(); //Set集合中存储的是一种映射关系 ,是对象
Integer key = me.getKey(); //使用这个映射关系可以得到键 和 值
String value = me.getValue();
System.out.println(key+":"+value);
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2