定义类实现,输入一段英文段落,统计段落中出现的英文单词个数,不同英文单词个数,每个英文单词出现的次数;使用String,ArrayList完成相应功能;
时间: 2023-09-10 22:06:47 浏览: 144
smarty中文手册
好的,我可以帮你实现这个功能。以下是一个示例代码,你可以参考一下:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class WordCounter {
public static void main(String[] args) {
String paragraph = "This is a sample paragraph. It contains some words that are repeated, such as sample and paragraph. It also has some words that appear only once. For example, the word distinct.";
// 统计单词个数
int wordCount = countWords(paragraph);
System.out.println("Total words: " + wordCount);
// 统计不同单词个数
int distinctCount = countDistinctWords(paragraph);
System.out.println("Distinct words: " + distinctCount);
// 统计每个单词出现的次数
Map<String, Integer> wordFrequency = countWordFrequency(paragraph);
System.out.println("Word frequency: " + wordFrequency);
}
// 统计单词个数
public static int countWords(String paragraph) {
String[] words = paragraph.split("\\s+");
return words.length;
}
// 统计不同单词个数
public static int countDistinctWords(String paragraph) {
String[] words = paragraph.split("\\s+");
ArrayList<String> distinctWords = new ArrayList<>();
for (String word : words) {
if (!distinctWords.contains(word)) {
distinctWords.add(word);
}
}
return distinctWords.size();
}
// 统计每个单词出现的次数
public static Map<String, Integer> countWordFrequency(String paragraph) {
String[] words = paragraph.split("\\s+");
Map<String, Integer> wordFrequency = new HashMap<>();
for (String word : words) {
if (wordFrequency.containsKey(word)) {
wordFrequency.put(word, wordFrequency.get(word) + 1);
} else {
wordFrequency.put(word, 1);
}
}
return wordFrequency;
}
}
```
在这个示例代码中,我们定义了一个`WordCounter`类来实现所需功能。我们使用了三个静态方法来实现不同的功能。`countWords`方法使用`String`的`split`方法来将段落分割成单词,并返回单词的总数。`countDistinctWords`方法使用`ArrayList`来存储不同的单词,并返回不同单词的个数。`countWordFrequency`方法使用`HashMap`来存储每个单词出现的次数,并返回一个`Map`对象。
你可以通过调用这些方法来实现你的需求。注意,这个示例代码是一个简单的实现,可能存在一些性能上的问题,你可以根据自己的需求进行优化。
阅读全文