精確統計程式碼量(Java實現)
大家面試的時候有沒有被問到過這樣一個問題:
你的程式碼量是多少?
WHAT???程式碼量???我怎麼知道,難
道要我去數嗎?
下面有簡便方法實現:
方法一:
利用Eclipse開發工具可以簡單的統計一個專案裡面的程式碼行數
1、如圖1,選中開啟的一個專案右擊,選中“search”選項,出現一個彈框;
2、在圖2中的彈框中,輸入如下所示內容,點選“search”,就會出現結果;
3、結果如圖3:
方法二:
想要精確統計程式碼量,去掉空白行!去掉註釋!沒有問題啊,下面我們就用Java來實現吧,什麼都不說了,直接上程式碼:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class CalculateRows {
static long classcount = 0; // Java類的數量
static long normalLines = 0; // 空行
static long commentLines = 0; // 註釋行
static long writeLines = 0; // 程式碼行
static long allLines = 0; // 程式碼行
public static void main(String[] args) throws Exception {
File f = new File("D:/xampp/htdocs/Crazy"); // 目錄
String type = ".java";//查詢什麼型別的程式碼,如".java"就是查詢以java開發的程式碼量,".php"就是查詢以PHP開發的程式碼量
CalculateRows.treeFile(f,type);
System.out.println("路徑:" + f.getPath());
System.out.println(type+"類數量:" + classcount);
System.out.println("程式碼數量:" + writeLines);
System.out.println("註釋數量:" + commentLines);
System.out.println("空行數量:" + normalLines);
if(classcount==0){
System.out.println("程式碼平均數量:" + 0);
}else{
System.out.println("程式碼平均數量:" + writeLines / classcount);
}
System.out.println("總 行數量:" + allLines);
}
/**
* 查詢出一個目錄下所有的.java檔案
*
* @throws Exception
*/
public static void treeFile(File f,String type) throws Exception {
File[] childs = f.listFiles();
for (int i = 0; i < childs.length; i++) {
File file = childs[i];
if (!file.isDirectory()) {
if (file.getName().endsWith(type)) {
classcount++;
BufferedReader br = null;
boolean comment = false;
br = new BufferedReader(new FileReader(file));
String line = "";
while ((line = br.readLine()) != null) {
allLines++;
line = line.trim();
if (line.matches("^[//s&&[^//n]]*$")) {//這一行匹配以空格開頭,但不是以回車符開頭,但以回車符結尾
normalLines++;
} else if (line.startsWith("/*")
&& !line.endsWith("*/")) {//匹配以/*......*/括住的多行註釋
commentLines++;
comment = true;
} else if (true == comment) {
commentLines++;
if (line.endsWith("*/")) {
comment = false;
}//匹配以//開頭的單行註釋,及以/*......*/括住的單行註釋
} else if (line.startsWith("//") || (line.startsWith("/*")&&line.endsWith("*/"))) {
commentLines++;
} else {//其他的就是程式碼行
writeLines++;
}
}
if (br != null) {
br.close();
br = null;
}
}
} else {
treeFile(childs[i],type);
}
}
}
}
結果如下所示:
相關文章
- 在Java中實現浮點數的精確計算 (轉)Java
- javascript浮點數精確計算程式碼JavaScript
- 精確驗證身份證號碼程式碼
- 設計模式 - java程式碼實現單例模式設計模式Java單例
- 【Java】得到當前系統時間,精確到毫秒Java
- 開發高質量的java程式碼;實現完美的人生Java
- 低程式碼之光!輕量級 GUI 的設計與實現GUI
- Python實現程式碼行數統計工具Python
- 自動化汽車生產,如何實現一車一檔案質量資訊精確追溯?
- 用VB計算PI精確數值到30000位的程式程式碼。 (轉)
- 使用簡單的Java程式碼實現酒店管理系統Java
- 用Shell擴充套件實現原始碼統計程式套件原始碼
- [java併發程式設計]基於訊號量semaphore實現限流器Java程式設計
- 異常值檢測!最佳統計方法實踐(程式碼實現)!⛵
- 統計java程式碼行數工具Java
- java 橋接模式實現程式碼Java橋接模式
- 精準實現身份證號碼格式校驗程式碼例項
- 精確驗證身份證號碼合法性程式碼例項
- android 系統重啟與關機:java 程式碼實現AndroidJava
- [精選] 統計線上人數,用php 如何來實現 ?PHP
- 【Lua】實現程式碼執行覆蓋率統計工具
- Laravel 實現文章瀏覽量次數統計Laravel
- Java Web 模板程式碼生成器的設計與實現JavaWeb
- ls命令統計檔案數量不準確
- 在java中程式設計實現數字簽名系統 (轉)Java程式設計
- 隨機快速排序Java程式碼實現隨機排序Java
- 雜湊表的程式碼實現(Java)Java
- Java程式碼實現下載檔案Java
- Java併發程式設計實戰--計數訊號量(Semaphore)Java程式設計
- 關於PHP精確計算模組PHP
- Fabric 1.0原始碼分析(47)Fabric 1.0.4 go程式碼量統計原始碼Go
- 精讀《用160行js程式碼實現一個React》JSReact
- 《程式碼統計分析工具 4.0》多國語言實現方案
- 《統計學習方法》——樸素貝葉斯程式碼實現
- 兩行程式碼輕鬆讓 Java 實現大文字平行計算行程Java
- Java 併發程式設計:ThreadLocal 的使用及其原始碼實現Java程式設計thread原始碼
- js實現的點選彈出確認視窗程式碼JS
- 程式碼質量第 5 層 - 只是實現了功能