定义类实现,输入一段英文段落,统计段落中出现的英文单词个数,不同英文单词个数,每个英文单词出现的次数;使用String,ArrayList完成相应功能;
时间: 2024-02-19 16:59:03 浏览: 25
好的,以下是一个实现上述功能的类的示例代码:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class WordCounter {
private String paragraph; // 存储输入的英文段落
private ArrayList<String> wordList; // 存储单词列表
private Map<String, Integer> wordMap; // 存储单词出现次数的映射表
public WordCounter(String paragraph) {
this.paragraph = paragraph;
this.wordList = new ArrayList<>();
this.wordMap = new HashMap<>();
processParagraph();
}
// 处理输入的英文段落
private void processParagraph() {
String[] words = paragraph.split("\\W+"); // 以非单词字符分割输入的段落,获取单词数组
for (String word : words) {
wordList.add(word.toLowerCase()); // 将单词转换为小写并添加到单词列表中
if (wordMap.containsKey(word.toLowerCase())) { // 如果单词已经在映射表中出现过,将其出现次数加一
wordMap.put(word.toLowerCase(), wordMap.get(word.toLowerCase()) + 1);
} else { // 如果单词在映射表中未出现过,将其加入映射表并设置出现次数为一
wordMap.put(word.toLowerCase(), 1);
}
}
}
// 获取英文段落中出现的单词个数
public int getWordCount() {
return wordList.size();
}
// 获取英文段落中不同的单词个数
public int getDifferentWordCount() {
return wordMap.size();
}
// 获取每个单词出现的次数
public Map<String, Integer> getWordFrequency() {
return Collections.unmodifiableMap(wordMap);
}
}
```
使用示例:
```
String paragraph = "This is a sample paragraph. It contains some words that are repeated. Some words are only used once.";
WordCounter wordCounter = new WordCounter(paragraph);
System.out.println("Word count: " + wordCounter.getWordCount());
System.out.println("Different word count: " + wordCounter.getDifferentWordCount());
System.out.println("Word frequency: " + wordCounter.getWordFrequency());
```
输出:
```
Word count: 16
Different word count: 13
Word frequency: {a=1, are=2, contains=1, is=1, it=1, once=1, only=1, paragraph=1, repeated=1, sample=1, some=2, that=1, this=1, used=1, words=2}
```
在这个示例中,我们创建了一个WordCounter类,它接受一个英文段落作为构造函数参数。在构造函数中,我们将输入的段落以非单词字符分割成单词数组,并将单词转换为小写并添加到单词列表中,同时使用映射表统计每个单词出现的次数。
WordCounter类提供了三个方法:getWordCount()返回英文段落中出现的单词个数,getDifferentWordCount()返回英文段落中不同的单词个数,getWordFrequency()返回一个不可修改的映射表,其中包含每个单词及其出现次数的键值对。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)