发布网友 发布时间:2024-10-02 20:07
共4个回答
热心网友 时间:2024-10-08 21:18
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
/**
* 字典类,记录文章中出现过的所有单词及其次数
* @author Administrator
*
*/
public class Dictionary {
private HashMap< String, Integer > dictionary;
private int wordsCount;
/**
* 字典这个类的构造函数
*/
public Dictionary() {
dictionary = new HashMap< String, Integer >();
wordsCount = 0;
}
/**
* 向字典里插入一个单词
* @param word
*/
public void insert( String word ) {
if ( dictionary.containsKey( word ) ) {
int currentCount = dictionary.get( word );
dictionary.put( word, currentCount + 1 );
} else {
dictionary.put( word, 1 );
}
wordsCount++;
}
/**
* 取得字典里所有不同的单词
* @return
*/
public int getDifferentWordsNum() {
return dictionary.size();
}
/**
* 返回字典里的所有单词 * 其出现次数
* @return
*/
public int getAllWordsNum() {
return wordsCount;
}
/**
* 展示字典中存放的所有单词及其出现次数
*/
public void displayDictionary() {
for ( Iterator< String > it = dictionary.keySet().iterator(); it.hasNext(); ) {
String key = it.next();
System.out.print( key );
System.out.print( ": " );
System.out.println( dictionary.get( key ) );
}
}
public static void main( String[] args ) throws Exception {
//这里放置你所说的段落
String passage = "public static void main( String[] args ) {";
Scanner scanner = new Scanner( passage );
Dictionary dict = new Dictionary();
while ( scanner.hasNextLine() ) {
String line =scanner.nextLine();
boolean isBlankLine = line.matches( "\\W" ) || line.length() == 0;
if ( isBlankLine ) {
continue;
}
String[] words = line.split( "\\W" );
for ( String word : words ) {
if ( word.length() != 0 ) {
dict.insert( word );
}
}
}
dict.displayDictionary();
}
}
热心网友 时间:2024-10-08 21:21
import java.util.Enumeration;
import java.util.Hashtable;
public class MyTest {
private static Object String;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="aabceeee";
char[] c=s.toCharArray();//转换成char[]
Hashtable h=new Hashtable();//用于存储
for(char c1:c) {
if(h.containsKey(c1))//判断是否已有了
((Counter)h.get(c1)).i++;//有了的话i++
else{
h.put(c1, new Counter());//没有的话存储到h
}
}
Enumeration e=h.keys();//keys的集合
while(e.hasMoreElements()){
Character ra= (Character) e.nextElement();
System.out.println(ra + "=" + ((Counter)h.get(ra)).i);//打印
}
}
}
class Counter{
int i=1;
}
上面的不知道你能看懂吗??
热心网友 时间:2024-10-08 21:16
设计一个JAVA程序,对一个保存英文文章的文本文件进行统计,最后给出每个英文字符及每个标点的出现次数,按出现次数的降幂排列。 你到底想问什么?残阳破晓SHUANG考虑采纳一下。有空到365testing,测评网,
热心网友 时间:2024-10-08 21:14
用正则表达式
int n=0;
String duanluo=段落;
String regex="\\s匹配的单词\\s";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(duanluo);
while(matcher.find()) {
n++;
}
System.out.println(regex+"出现"n+"次");
。。。可能我理解错了 没试 但是这样的思路 会重复输出
String[] aa=duanluo.split(" ");
for(int i=0;i<aa.length;i++){
int n=1;
for(int j=i+1;j<aa.length;j++){
if(aa[i].trim().equals(aa[j].trim())){
n++;
}
}
System.out.println(aa[i]+"出现"+n+"次");
}