一个基于java实现的代码计数器
一个简单wc.exe小程序的java代码
首先说一下任务需求:wc.exe是一个代码计数器,通过这个计数器,我们可以清楚的判断一个c语言文件中有多少个字符,多少个单词以及一共多少行、注释行等等信息。
工具使用:
开发工具我们选用ecplise,在使用这个工具之前,我们先安装一个插件,这个插件叫做windowbuilder,通过这个插件我们可以轻松的使用gui来编辑,拖动组件,轻松经行GUI编程。效果如下:
一个简易的GUI界面也如图,这里要说明一下,我们的jdk版本是1.8的,1.9刚出没多久,不建议大家使用,所以在这里我们就使用稳定的1.8就好了。
功能模块展示
开始界面:
点击选择文件就可以选择你要选取的c程序文件,当然仅限于c程序文件,如果不是,会进行提示报错。在这里我们随便选取得一个文件,结果显示:
会有提示,要你重新上传。或者给你警告告诉你,这样会存在风险,慎重考虑。
还做了一系列的逻辑判断,保证这个文件是可行的,之后贴代码再看。这里不多做解释。最后来一张图进行功能演示,选取到一个合适的文件后,便可以自动进行统计判断了。
在这里还有一个完全的统计,对行数的统计。即:注释行占用了多少,占用整个文件中行数的百分比。之后点击退出便可退出这个小程序。
代码逻辑说明
这里用到了统计字符数,统计单词数量,统计行数,统计注释行等说明。统计的方法逻辑很简单,就是把对这整个文件进行IO操作,使用readline()方法,读取出来,进行判断,相关代码如下:
对文件的操作,已经封装成了一个Util的工具类。来我们先看看代码结构,由于是个小程序,我也就没太多的进行分层。
下面对这些类进行一些说明
Annontation:对是否为注释行进行判断等逻辑
FileUtil:文件操作的工具类
Line\Word:行数,字符的实体类
Main:程序的主界面,GUI
WordNumber/LineNumber:具体统计类
行数的统计:
BufferedReader reader=wj.gerReader(fileName);String liner=null;Line line=new Line();Annotation lj=new Annotation();while((liner=reader.readLine())!=null){if(lj.isNull(liner)){line.setKhLine(line.getKhLine()+1);line.setWlhLine(line.getWlhLine()+1);}else if(lj.simpleNote(liner)){line.setZshLine(line.getZshLine()+1);line.setWlhLine(line.getWlhLine()+1);}else if(lj.isCode(liner)){line.setDmhLine(line.getDmhLine()+1);line.setWlhLine(line.getWlhLine()+1);}else if(lj.isMuNote(liner)){line.setZshLine(line.getZshLine()+1);line.setWlhLine(line.getWlhLine()+1);}}reader.close();
字符的统计:
try {BufferedReader reader = fileUtil.gerReader(fileName); // 获取一个输入输出的缓冲区String line = reader.readLine();StringBuffer buffer = new StringBuffer(line);while(line != null){line = reader.readLine();buffer.append(line);}word.setCharNumber(buffer.length());line = buffer.toString();line.replaceAll(";", " ");String[] split = line.split(" ");if(split.length>0){String s = split[0];char c = s.charAt(0);if((c >= 'A' && c<='Z') || (c >= 'a' && c <= 'z') || c=='#'){ //判断是否只有一个特殊符号,如果是那就不是一个单词word.setWordNumber(split.length); }}else{word.setWordNumber(0);} reader.close(); //用完这个输入输出流要关闭
其中word,Line是我封装,单词跟行数的实体类。大家可自行下载源代码来看,一会儿会贴出源代码的路径。
以上就是这个小程序的关键说明,简单易懂,到了最后,各位朋友们可以将其导出成一个可运行的jar文件,这样这个程序在任何一个装了JRE的电脑上都能运行,这就是java跨平台的一大优点。具体导出方法很简单,这里不多做说明,如有兴趣的朋友们,可下载我这个小demo来玩玩。一下便是下载地址:
wc简易小程序。
辛苦码字不容易,希望大家多多留言点赞。谢谢!
一个基于java实现的代码计数器相关推荐
- 一个基于Java的syslog服务器,大家都来看看啊!
一个基于Java的syslog服务器 前言 前期准备 功能效果图 接收到的数据只能输出到控制台的问题解决方法 具体代码 结语 前言 当时接到要开发syslog功能时,我的表情是这样的- 啥是syslo ...
- 帮我写一个基于java的朗读器可以自动分析本文情感的代码
很高兴为您服务.这里是一段基于Java的朗读器代码,它可以自动分析本文情感: import java.io.File; import java.io.FileInputStream; import j ...
- 手把手教你搭建一个基于Java的分布式爬虫系统
http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...
- vba数组dim_NDArray — —一个基于Java的N-Dim数组工具包
vba数组dim 介绍 (Introduction) Within many development languages, there is a popular paradigm of using N ...
- 如何做一个基于JAVA房产中介预约看房系统毕业设计毕设作品(springboot框架)
分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于JAVA的网站开发属于B/S架构(即浏览器和服务器架构模式),架构如图 分析系统功能 ...
- 如何做一个基于JAVA失物招领网站系统毕业设计毕设作品(springboot框架)
分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于JAVA的网站开发属于B/S架构(即浏览器和服务器架构模式),架构如图 分析系统功能 ...
- 如何做一个基于JAVA二手交易网站系统毕业设计毕设作品(springboot框架)
分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于JAVA的网站开发属于B/S架构(即浏览器和服务器架构模式),架构如图 分析系统功能 ...
- 如何做一个基于JAVA餐厅座位预定系统毕业设计毕设作品(springboot框架)
分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于JAVA的网站开发属于B/S架构(即浏览器和服务器架构模式),架构如图 分析系统功能 ...
- 如何做一个基于JAVA景点景区售票系统毕业设计毕设作品(springboot框架)
分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于JAVA的网站开发属于B/S架构(即浏览器和服务器架构模式),架构如图 分析系统功能 ...
最新文章
- libcurl选项CURLOPT_WRITEDATA中的“坑”
- android学习从模仿开始 —— 模仿UI 导航帖
- redis分片_5000+字硬核干货!Redis 分布式集群部署实战
- 查看服务器物理内存大小,如何看服务器的物理内存大小
- Docker 精通之 Dockerfile
- 干掉 BeanUtils!试试这款 Bean 自动映射工具,真心强大!
- 8个必备的Python GUI库
- .net知识和学习方法系列(三)CSharp中控件台的输入输出
- Bus Hound 的使用方法
- 数据科学、机器学习和数据挖掘的差异
- Python正态性检验
- LFS8.0完全安装搭建制作教程
- 暴走P图APP隐私政策
- java jsp使用flash播放mp4,(jsp/html)网页上嵌入播放器(常用播放器代码整理)
- Webpack5快速入门 (二) CSS相关loader的使用及兼容性处理 手把手带你打开前端工程化的大门
- 计算机中完成全选的快捷键,怎么全选-很实用!word中全选的快捷键介绍及使用方法...
- css实现icon动画效果
- 配置NTP服务ntpd/ntp.conf
- Linux 计算机网络 从 ping 来初窥计算机网络
- windows计算器_如何使用Windows 10计算器