java连续单词重复出现的次数_java 以空格或者“,”“.”作为单词分隔符统计出现次数最多的10个单词,以及这些单词现了多少次...

这段Java代码用于统计文本中以空格、逗号、句点为分隔符的单词出现次数,并找出前10个出现频率最高的单词。用户可以选择忽略大小写,程序会读取指定文件并进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.yj;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.Reader;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Scanner;

import java.util.Map.Entry;

public class WordCount {

public static void main(String[] args) {

int flag=0;

Scanner s=new Scanner(System.in);

System.out.println("是否忽略大小写?请输入0(忽略)或1(不忽略)");

int ss=s.nextInt();

flag=(ss==0)?0:1;

//        if(ss==0) {

//            flag=0;

//        }

//        else if(ss==1) {

//            flag=1;

//        }

Map wordMap = new HashMap();

// 获取项目路径

String path = System.getProperty("user.dir");

// 拼接文件路径 创建源

File src = new File(path + "/src/com/yj/demo.txt");

// 选择流

Reader reader = null;

try {

reader = new FileReader(src);

// 读取操作

char[] flush = new char[1024];

int len = 0;

while (-1 != (len = reader.read(flush))) {

// 字符数组转成 字符串

String str = new String(flush, 0, len);

// 分割成块

String[] strArray = str.split(",|\\.|\\s+");

// 分割出单词

for (int i = 0; i < strArray.length; i++) {

// 将所有单词选出来放于集合

if (strArray[i].matches("^[A-Za-z]+$")) {

// 忽略大小写,统一转为小写

if(flag==0) {

strArray[i] = strArray[i].toLowerCase();

}

if (wordMap.containsKey(strArray[i])) {

wordMap.put(strArray[i], wordMap.get(strArray[i]) + 1);

} else {

wordMap.put(strArray[i], 1);

}

}

}

}

List> words = new ArrayList>(wordMap.entrySet());

Collections.sort(words, new Comparator>() {

@Override

public int compare(Entry o1, Entry o2) {

return -(o1.getValue() - o2.getValue());

}

});

System.out.println("出现频率最多的十个单词是:");

int i = 0;

for (Map.Entry node : words) {

if (i < 10) {

System.out.println(node.getKey() + " : " + node.getValue());

} else {

break;

}

i++;

}

} catch (FileNotFoundException e) {

e.printStackTrace();

System.out.println("源文件不存在");

} catch (IOException e) {

e.printStackTrace();

System.out.println("文件读取失败");

} finally {

try {

if (null != reader) {

reader.close();

}

} catch (Exception e2) {

}

}

}

}

917d970171f37a710c1b58efeb9d2d42.png

51ea48b3ad6270990e3b7ffd3960dbf7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值