单词频度统计java

 测试:

import java.util.HashMap;
import java.util.Map;
//单词频度统计
public class test {

    public static void main(String[] args) {

        String s = "To drive is without a license is illegal. It is illegal to      drive without a license.Driving without a license is illegal.";
        //单词分割 resplace替换 toLowerCase将大写字母变为小写
        s = s.replace(".", " ").replace(",", " ").toLowerCase();
        //split分割 \\s+一个或多个空格
        String[] strs = s.split("\\s+");
        Map<String, Integer> map = new HashMap<>();//键值对
        //添加到Map
        for (String ss : strs) {
            if (map.containsKey(ss)) {
                map.put(ss, map.get(ss) + 1);
            } else {
                map.put(ss, 1);
            }
        }
        //遍历Map输出
        for (String key : map.keySet()) {
            System.out.println(key + ":" + map.get(key));
        }
    }
}

运行:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的C语言程序,用于统计文本文件中单词频度: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define MAX_WORD_LEN 50 // 最大单词长度 #define MAX_WORDS 10000 // 最大单词数 int main(int argc, char *argv[]) { char filename[100]; // 文件名 char word[MAX_WORD_LEN + 1]; // 当前单词 char words[MAX_WORDS][MAX_WORD_LEN + 1]; // 所有单词 int freq[MAX_WORDS]; // 单词频度 int n = 0; // 单词数 int i, j, k; // 循环计数器 FILE *fp; // 文件指针 // 获取文件名 if (argc < 2) { printf("请输入文件名:"); scanf("%s", filename); } else { strcpy(filename, argv[1]); } // 打开文件 fp = fopen(filename, "r"); if (fp == NULL) { printf("无法打开文件 %s\n", filename); exit(1); } // 读取所有单词 while (fscanf(fp, "%s", word) == 1) { // 将单词转换成小写 for (i = 0; word[i] != '\0'; i++) { word[i] = tolower(word[i]); } // 检查单词是否已经出现过 for (i = 0; i < n; i++) { if (strcmp(words[i], word) == 0) { freq[i]++; break; } } // 如果单词是新出现的,则加入单词列表 if (i == n) { strcpy(words[n], word); freq[n] = 1; n++; } } // 关闭文件 fclose(fp); // 输出所有单词及其频度 for (i = 0; i < n; i++) { printf("%s:%d\n", words[i], freq[i]); } return 0; } ``` 该程序的基本思路是: 1. 打开文件; 2. 逐个读取文件中的单词,并将其转换成小写形式; 3. 检查该单词是否已经出现过,如果是则增加其频度,否则将其加入单词列表; 4. 关闭文件; 5. 输出所有单词及其频度。 需要注意的是,该程序假设单词之间用空格或换行符分隔,并且不考虑标点符号对单词的影响。如果需要更精确地统计单词,需要对程序进行一定的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪八戒1.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值