java实现代码统计小程序

本文实例为大家分享了java代码统计小程序,供大家参考,具体内容如下

可以测试每周你的工作量

package rexExp;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class CodeCounter {
 //三个静态变量存储行数
 static long normalLines = 0;
 static long commentLines = 0;
 static long whileLines = 0;

 public static void main(String[] args) {
 String pathname = "E:\\testeclipseworkspace\\JavaLearn\\src\\collection";
 File file = new File(pathname);
 File[] codeFiles = file.listFiles();//找到文件夹下面的所有子文件
 //文件必须是以.java结尾,用正则表达式来验证
 for(File child : codeFiles){
  if (child.getName().matches(".*\\.java$")) {
  parse(child);
  }
 }

 System.out.println("normalLines:" + normalLines);
 System.out.println("commentLines:" + commentLines);
 System.out.println("whileLines:" + whileLines);

 }

 private static void parse(File file) {
 BufferedReader bReader = null;
 boolean comment = false;
 try {
  bReader = new BufferedReader(new FileReader(file));
  //读其中的每一行
  String line = "";
  while((line=bReader.readLine()) != null){
  line = line.trim();//去掉首尾空格
  //统计空行的行数
  if (line.matches("^[\\s&&[^\\n]]*$")) {
   whileLines++;
  }
  //统计注释的行数
  else if (line.startsWith("/*") && !line.endsWith("*/")) {
   commentLines++;
   //如果遇到"/*",说明注释开始了
   comment = true;
  }
  else if (line.startsWith("/*") && line.endsWith("*/")) {
   commentLines++;
  }
  else if (true == comment) {
   commentLines++;
   if (line.endsWith("*/")) {
   comment = false;
   }
  }
  else if(line.startsWith("//")){
   commentLines++;
  }
  else {
   normalLines++;
  }
  }
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }finally {
  if (bReader != null) {
  try {
   bReader.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java代码统计网站中不同省份用户的访问数

    一.需求 针对log日志中给定的信息,统计网站中不同省份用户的访问数 二.编程代码 package org.apache.hadoop.studyhdfs.mapreduce; import java.io.IOException; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; im

  • java实现代码统计小程序

    本文实例为大家分享了java代码统计小程序,供大家参考,具体内容如下 可以测试每周你的工作量 package rexExp; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class CodeCounter { //三个静态变量存储行数 st

  • java仿windows记事本小程序

    本文实例为大家分享了java仿windows记事本小程序的具体代码,供大家参考,具体内容如下 import java.awt.CheckboxMenuItem; import java.awt.Font; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.TextA

  • java实现打字游戏小程序

    本文实例为大家分享了java实现打字游戏小程序的具体代码,供大家参考,具体内容如下 一.设计思路 1.创建一个窗体 2.在窗体上放置一个面板,用paint方法画出英文字母,随机放置字母位置,并随时间自动下落 3.设置得分扣分机制 4.在面板上添加键盘监听器,输入正确得分,输入错误则扣分 ps:面板和监听器用一个类实现(这样简单方便) 二.具体实现 MyPanel.java import java.awt.Color; import java.awt.Font; import java.awt.G

  • Java后台与微信小程序的数据交互实现

    想把自己写的一个小项目转成微信小程序,主要是因为小程序比较火,而且自己想学一下小程序的东西,所以抱着初学者的心态开始了这个痛苦的旅程.看过小程序的一点视频,个人感觉和HTML,css,js差不多,甚至比前端更简单一些,可能是微信小程序做不出来那些炫酷的动态效果. 首先,要从Java后台查询出一组数据,然后转成json串返回.我总共总结了2种方法返回数据.一种非常简单,一种显得繁琐. 第一种通过springmvc的组件@ResponseBod返回数据 /* * 查询用户 * 通过springmvc

  • Java实现简单计算器小程序

    本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下 这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练. 由于期末来了,没太多时间,所以暂时就实现最简单的功能. 个人不喜欢用大量文字记叙程序,而且该程序也相对简单,所以直接画了张程序框架图,再配合代码的注释,就明白程序的原理了. 图 计算器程序框架 代码如下: package tst.jframe; import java.awt.EventQueue; i

  • java gui实现计算器小程序

    本文实例为大家分享了java gui实现计算器小程序的具体代码,供大家参考,具体内容如下 废话不多说 , 直接贴代码 , 有详细的注释 , 我也是刚学GUI没多久 这个是效果图 : 代码: package gui; /** * 导入所需要的包 **/ import java.awt.*; // 这个是java的gui编程里面一个很重要的包 import java.awt.event.*; // 用来处理事件所需要 import java.util.Stack; // 栈 , 我用来处理运算的 p

  • java实现日历窗口小程序

    本文实例为大家分享了java实现日历窗口小程序的具体代码,供大家参考,具体内容如下 标签:java基础 功能: 1.按月翻页. 2.输入月份年份,直接跳转. 效果图: //CalendarMainClass.java public class CalendarMainClass{     public static void main(String args[]){         CalendarFrame frame = new CalendarFrame();         frame.

  • 基于java socket实现 聊天小程序

    服务器 package demo04; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.DataInputStream; import java.io.DataOutp

  • python代码实现小程序登录流程时序总结

    目录 官方文档 小程序登录 登录流程时序 说明: 注意: 小程序的登录总结 案例 官方文档 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 登录流程时序 说明: 调用wx.login()获取临时登录凭证code,并回传到开发者服务器. 调用auth.code2Sessi

  • Java中生成微信小程序太阳码的实现方案

    目录 背景 实现方案 生成有限制太阳码 实现步骤 获取小程序的access_token 调用微信api生成小程序太阳码 说明 参数说明 注意事项 获取小程序的access_token 调用微信api生成小程序太阳码 说明 参数说明 参数过长问题 解决方案 生成无限制太阳码 扩展功能 总结 背景 当前小程序盛行的时代,无论走在那里都会看到各种各样的小程序太阳码,小程序项目中经常也会用到小程序的太阳码,那么我们如何生成小程序的太阳码呢? 实现方案 我们可以通过如下的方法实现小程序太阳码生成. 生成有

随机推荐