一个简单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简易小程序。
辛苦码字不容易,希望大家多多留言点赞。谢谢!