精確統計程式碼量(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
- 低程式碼之光!輕量級 GUI 的設計與實現GUI
- java 橋接模式實現程式碼Java橋接模式
- 異常值檢測!最佳統計方法實踐(程式碼實現)!⛵
- Java 併發程式設計:ThreadLocal 的使用及其原始碼實現Java程式設計thread原始碼
- [java併發程式設計]基於訊號量semaphore實現限流器Java程式設計
- Java 實現的SnowFlake生成UUID (Java程式碼實戰-007)JavaUI
- 【Lua】實現程式碼執行覆蓋率統計工具
- 隨機快速排序Java程式碼實現隨機排序Java
- 雜湊表的程式碼實現(Java)Java
- 精讀《用160行js程式碼實現一個React》JSReact
- java統計實體類中空欄位數量Java
- 兩行程式碼輕鬆讓 Java 實現大文字平行計算行程Java
- 《統計學習方法》——樸素貝葉斯程式碼實現
- 《程式碼統計分析工具 4.0》多國語言實現方案
- 如何正確實現 Java 中的 HashCodeJava
- [精選] 統計線上人數,用php 如何來實現 ?PHP
- 《程式碼整潔之道》精華速覽,助你提升程式碼質量
- 音樂格式轉換:java程式碼實現Java
- [譯] 用 Java 程式碼實現區塊鏈Java區塊鏈
- Java工作量統計系統Java
- 程式設計師正確看程式碼的方式程式設計師
- 登Nature,AI設計DNA開關,MIT團隊實現精確的細胞控制AIMIT
- ERP與條碼系統整合實現精益化可追溯
- Fabric 1.0原始碼分析(47)Fabric 1.0.4 go程式碼量統計原始碼Go
- ls命令統計檔案數量不準確
- 一個專為程式設計師設計的精緻 Java 部落格系統程式設計師Java
- 自動化汽車生產,如何實現一車一檔案質量資訊精確追溯?
- 程式碼質量第 5 層 - 只是實現了功能
- Java程式碼實現七夕魔方照片牆Java
- Java實現網路爬蟲 案例程式碼Java爬蟲
- 用Java程式碼實現區塊鏈技術Java區塊鏈
- java實現人機猜拳遊戲的程式碼Java遊戲
- 200行Java程式碼實現依賴注入框架Java依賴注入框架
- Uber是如何花費巨大精力實現快取精確失效?快取
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- Socket程式設計入門(基於Java實現)程式設計Java
- Laravel 10 行程式碼實現簡單的網站 pv uv 統計Laravel行程網站
- 精確計算微信小程式scrollview高度,全機型適配微信小程式View