StringBuffer strBuf=new StringBuffer("a,b,c,d,e,f,a,a,d,c,c");
StringTokenizer st=new StringTokenizer(strBuf.toString(),",");
Map set=new TreeMap();
while(st.hasMoreTokens()) {
String temp=st.nextToken();
Object o=set.get(temp);
if(o==null)
set.put(temp,new Integer(0));
else
set.put(temp,new Integer(((Integer)o).intValue()+1));
}
//打印Set即可
StringTokenizer st=new StringTokenizer(strBuf.toString(),",");
Map set=new TreeMap();
while(st.hasMoreTokens()) {
String temp=st.nextToken();
Object o=set.get(temp);
if(o==null)
set.put(temp,new Integer(0));
else
set.put(temp,new Integer(((Integer)o).intValue()+1));
}
//打印Set即可
的实现方式很好,果然不愧是两个星的人,呵呵!
import java.util.*;
public class Test {
public static void main(String[] args) {
StringBuffer strBuf=new StringBuffer("a,b,c,d,e,f,a,a,d,c,c");
StringTokenizer st=new StringTokenizer(strBuf.toString(),",");
Map set=new TreeMap();
while(st.hasMoreTokens()) {
String temp=st.nextToken();
Object o=set.get(temp);
if(o==null)
set.put(temp,new Integer(1));
else
set.put(temp,new Integer(((Integer)o).intValue()+1));
}
Iterator i=set.keySet().iterator();
while(i.hasNext()) {
System.out.print((String)i.next()+" ");
}
System.out.println();
Integer integer=(Integer)Collections.max(set.values());
System.out.println(integer.intValue());
}
}
import java.io.*;//用来计算单词出现的次数
class Counter{
private int i = 1;
int read(){
return i;
}
void increment(){
i++;
}
}public class StringBufferToString{
//private FileReader f;
StringReader sr;
//如要排序用TreeMap
private HashMap counts = new HashMap();
private StreamTokenizer st;
StringBufferToString(StringBuffer s){
if (s == null){
throw new NullPointerException();
}
sr = new StringReader(s.toString());
st = new StreamTokenizer(new BufferedReader(sr));
}
void countWords(){
try{
while(st.nextToken() != StreamTokenizer.TT_EOF){
String s;
switch(st.ttype){
case StreamTokenizer.TT_EOL:
s = "EOL";
break;
case StreamTokenizer.TT_NUMBER:
s = String.valueOf(st.nval);
break;
case StreamTokenizer.TT_WORD:
s = st.sval;
break;
default:
s = String.valueOf((char)st.ttype);
}
if (counts.containsKey(s))
((Counter)counts.get(s)).increment();
else
counts.put(s, new Counter());
}
}catch(IOException e){
System.err.println("countWords() unsuccessful");
}
}
public Set keySet(){
return counts.keySet();
}
public Counter getCounter(String key){
return (Counter)counts.get(key);
}
public String getString(){
Iterator it = this.keySet().iterator();
String k;
String result = "";
while(it.hasNext()){
k = (String)it.next();
if(k.equals(",")){
continue;
}
result = result + k + ",";
}
result = result.substring(0, result.length() - 1);
return result;
} public static void main(String[] args) throws FileNotFoundException{
StringBuffer sb = new StringBuffer("a,b,c,d,e,f,a,a,d,c,c");
StringBufferToString wc = new StringBufferToString(sb);
wc.countWords();
Iterator it = wc.keySet().iterator();
String k;
while(it.hasNext()){
k = (String)it.next();
if(k.equals(",")){
continue;
}
System.out.println(k + " : " +
wc.getCounter(k).read());
}
System.out.println(wc.getString());
}
}