统计任意一个字符串中的英文单词总数、最长单词的长度、最短单词的长度、单词的平均长度
时间: 2024-03-15 08:47:59 浏览: 117
可以使用Java中的正则表达式和字符串操作来实现。具体步骤如下:
1. 使用正则表达式匹配字符串中的所有单词,可以使用`\b\w+\b`,其中`\b`表示单词的边界,`\w`表示单词字符(包括字母、数字、下划线),`+`表示匹配多个字符。
2. 统计单词总数,可以使用Java中的String类的split()方法将字符串按空格分割成一个字符串数组,然后统计数组的长度即可得到单词数。
3. 统计最长和最短单词的长度,可以遍历所有单词,比较它们的长度,找到最长和最短的单词长度。
4. 计算单词的平均长度,可以将所有单词的长度相加,再除以单词数。
示例代码如下:
```java
public static void countWords(String str) {
String[] words = str.split("\\s+"); // 按空格分割字符串
int count = words.length; // 单词总数
int maxLen = 0; // 最长单词长度
int minLen = Integer.MAX_VALUE; // 最短单词长度
int sumLen = 0; // 所有单词长度之和
Pattern pattern = Pattern.compile("\\b\\w+\\b"); // 匹配单词的正则表达式
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
String word = matcher.group(); // 获取匹配到的单词
int len = word.length(); // 单词长度
if (len > maxLen) {
maxLen = len;
}
if (len < minLen) {
minLen = len;
}
sumLen += len;
}
double avgLen = (double) sumLen / count; // 平均单词长度
System.out.println("单词总数:" + count);
System.out.println("最长单词长度:" + maxLen);
System.out.println("最短单词长度:" + minLen);
System.out.printf("平均单词长度:%.2f\n", avgLen);
}
```
调用示例:
```java
String str = "Hello world, this is a Java program.";
countWords(str);
```
输出结果:
```
单词总数:8
最长单词长度:7
最短单词长度:1
平均单词长度:3.38
```
阅读全文