一、Map遍历的4种方法
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}
二、统计字符串中各个字符的个数
public static void main(String[] args) { StringBuilder str=new StringBuilder("aaaaaabbbajjsjjjjj"); Map<Object,Integer> map=new HashMap<Object,Integer>(); for(int i=0;i<str.length();i++){ char t=str.charAt(i); int count=0; if(map.get(t)==null){ for(int j=i+1;j<str.length();j++){ if(t==str.charAt(j)){ count++; } } map.put(t, ++count); } } for (Object key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); } }
三、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
public static void main(String args[]){ int num=0,chartra=0,blak=0,other=0; Scanner s=new Scanner(System.in); System.out.println("请输出字符创"); String result=s.nextLine(); char x[]=result.toCharArray(); for(int i=0;i<x.length;i++){ if(Character.isDigit(x[i])){ num++; }else if(Character.isLetter(x[i])){ chartra++; }else if(Character.isSpace(x[i])){ blak++; } else{ other++; } System.out.println(x.length); } System.out.println("数字的个数是"+num); System.out.println("字符的个数是"+chartra); System.out.println("空值的个数是"+blak); System.out.println("其他的个数是"+other); } }