统计单词频率 java_统计文本中各单词出现的频率(JavaWeb)

本文介绍了一个使用JavaWeb技术实现的统计文本单词频率的系统。系统通过接收用户上传的文本文件,后台程序读取文件并分析单词频率,然后将前10个高频单词展示在前端页面上。系统采用MVC设计模式,具有良好的并发性和可维护性。
摘要由CSDN通过智能技术生成

统计文本单词频率

一、问题定义:

这次的工程任务为软件工程课程作业,旨在使用某种编程语言,完成统计文本文件中各单词出现的频率,并将前10的单词打印出来。问题的规模限于几个页面与后台的简单的数据交互。

二、可行性分析

该项目是基于Java语言,而java封装了大量各种处理方法,对文本文件,输入输出流、字符串处理等方面有着很大的优势,这样能够使具体处理函数透明化,故选择java语言。而其中字符串的split方法为该项目中处理字符串的主要函数,因此使得项目中关键的较长字符串处理成为可能,也是项目的规模得以较大的简化。

三、需求分析

该项目中为解决用户统计文本文件中单词的需求,设计了一个起始页面,提示用户上传需要统计分析的文本文件,这是系统会取得用户上传的文本文件,将其保存至服务器端,同时启动后台程序,读取上传文件,进行分析,得到结果,返回结果去前台页面,将处理后结果以表格形式展现出来。

四、总体设计

该项目为提高交互友好性,选择了JavaWeb形式,以常见的网页为程序起始页,使后台处理完全透明化。同时由于JavaWeb多见于大型项目,本次的项目也有较高的并发访问行与稳定性,并且能够长期同时提高服务。同时采用MVC的设计模式,使得控制层与业务逻辑层、视图层独立性提高,值得系统的模块化较高,有较好的后期维护性。

五、详细设计

该部分主要利用统一建模语言UML,建立该项目的模型与结构流程,确定每一个模块需要的算法及数据结构。

64ec0084abefb24f89161a090c844a08.png

六、编码与单元测试

(一)Java后台代码部分

1、实体类mode.java

package com.xzp.unity;

/**

* 实体类

* @author Xzp

*

*/

public class Model {

private String[] s;//字符串数组

private int[] n;//整形数组

//get set方法

public String[] getS() {

return s;

}

public void setS(String[] s) {

this.s = s;

}

public int[] getN() {

return n;

}

public void setN(int[] n) {

this.n = n;

}

}2、工具类 Tools.java

package com.xzp.util;

import java.util.Scanner;

import com.xzp.unity.Model;

/**

* @author Xzp

*

*/

public class Tools {

/**

*

* @param s 目标字符串数组

* @param str 匹配字符串

* @return 匹配结果 字符串第一次出现的位置

*/

public int firstAppear(String[] s,String str) {

for (int i = 0; i < s.length; i

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是如何解决JavaWeb上传图片时的过滤问题。这个问题其实可以通过在JavaWeb使用Filter来解决。 具体的实现方法如下: 1. 创建一个过滤器类,实现javax.servlet.Filter接口。 2. 在doFilter方法,获取上传文件的文件名,然后判断文件名是否以.jpg、.jpeg、.png、.gif等图片格式结尾。 3. 如果是图片文件,则直接放行,否则就拒绝上传并返回错误信息。 4. 在web.xml文件配置该过滤器。 下面是一个简单的示例代码,仅供参考: ``` import java.io.IOException; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebFilter(filterName = "UploadFilter", urlPatterns = {"/upload/*"}) public class UploadFilter implements Filter { private String[] allowedExt = {".jpg", ".jpeg", ".png", ".gif"}; public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; String fileName = request.getHeader("file-name"); if (fileName != null) { for (String ext : allowedExt) { if (fileName.endsWith(ext)) { chain.doFilter(request, response); return; } } } response.sendError(HttpServletResponse.SC_BAD_REQUEST, "只允许上传图片文件"); } public void init(FilterConfig filterConfig) throws ServletException { } public void destroy() { } } ``` 这个过滤器会拦截所有以"/upload/"开头的URL,并检查上传文件名是否以.jpg、.jpeg、.png、.gif等图片格式结尾。如果是图片文件,则直接放行,否则就拒绝上传并返回错误信息。你可以根据实际需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值