/*
计数单双字符的个数并存储在Map对象中
*/
import java.util.*;
import java.io.*;
public class CountChars{
public static void main(String args[]){
String ss="itneste我是itnesteyeah我";
CountChars c=new CountChars();
c.count(ss);
}
private void count(String s){
Map counter=new HashMap();
List lSingel=new LinkedList();
List lDouble=new LinkedList();
int singelC=0,doubleC=0;
for(int i=0;i
int c=String.valueOf(s.charAt(i)).getBytes().length;
if(counter.containsKey(String.valueOf(s.charAt(i)))==false){
counter.put(String.valueOf(s.charAt(i)),1);
}else{
int tempc=counter.get(String.valueOf(s.charAt(i)));
tempc++;
counter.put(String.valueOf(s.charAt(i)),tempc);
}
switch(c){
case 1:
singelC++;
if(lSingel.contains(String.valueOf(s.charAt(i)))){
break;
}else{
lSingel.add(String.valueOf(s.charAt(i)));
}
break;
case 2:
doubleC++;
if(lDouble.contains(String.valueOf(s.charAt(i)))){
break;
}else{
lDouble.add(String.valueOf(s.charAt(i)));
}
break;
}
}
Set set=counter.keySet();
Iterator it=set.iterator();
System.out.println("各个字符的个数为:");
while(it.hasNext()){
String sss=String.valueOf(it.next());
System.out.print(sss+"="+counter.get(sss)+",");
}
System.out.println();
System.out.println("单字节字符数目:"+singelC+",双字节字符数目:"+doubleC);
System.out.println("单字节字符为"+lSingel);
System.out.println("双字节字符为"+lDouble);
}
}