計算編寫代碼行數
大家算算自己的吧 ,聽說10W行以上就是高手了:-)
package my.code.counter; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.text.DecimalFormat; import java.util.Scanner; public class CodeCounter { static long normalLines = 0; static long commentLines = 0; static long whiteLines = 0; public static void main(String[] args) { int x; Scanner scan = new Scanner(System.in); System.out.println("自我感覺寫了多少代碼?"); x = scan.nextInt(); System.out.println("實際上(~-~#):"); File f = new File("G://code//");//代碼所在的位置 File[] codeFiles = f.listFiles(); for(File child : codeFiles){ if(child.getName().matches(".*//.java$")) { parse(child); } } System.out.println("代碼:" + normalLines); System.out.println("註釋:" + commentLines); System.out.println("空白:" + whiteLines); DecimalFormat fmt = new DecimalFormat("0.##");//保留2爲小數 System.out.println("實際和感覺的比例:" + fmt.format((double)normalLines/x*100) + "%"); System.out.println("你已經成爲" + fmt.format((double)normalLines/100000*100) + "% 的高手(10W行代碼)"); } private static void parse(File f) { BufferedReader br = null; boolean comment = false; try { br = new BufferedReader(new FileReader(f)); String line = ""; while((line = br.readLine()) != null) {//判斷是每行是什麼(代碼,註釋,空白) line = line.trim(); if(line.matches("^[//s&&[^//n]]*$")) { whiteLines ++; } 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(br != null) { try { br.close(); br = null; } catch (IOException e) { e.printStackTrace(); } } } } }
Map是用於保存具有映射關係的數據集合,它具有雙列存儲的特點,即一次必須添加兩個元素,即一組鍵值對<Key,Value>,其中Key的值不可重複(當Key的值重複的時候,後面插入的對象會將之前插入的具有相同的Key值的對象覆蓋掉),Valu
前端面試題 - null是原始類型,但爲什麼typeof null的結果是object? 造成這個結果的原因是null的內存地址是以000開頭,而js會將000開頭的內存地址視爲object。 通過isNull()來判斷一個值是不是null
DHTMLX Suite UI 組件庫允許您更快地構建跨平臺、跨瀏覽器 Web 和移動應用程序。它包括一組豐富的即用式 HTML5 組件,這些組件可以輕鬆組合到單個應用程序界面中。 DHTMLX Gantt是用於跨瀏覽器和跨平臺應用程序的功
本文分享自華爲雲社區《GaussDB(DWS)向量化執行引擎詳解》,作者: yd_212508532。 前言 適用版本:【基線功能】 傳統的行執行引擎大多采用一次一元組的執行模式,這樣在執行過程中CPU大部分時間並沒有用來處理數據,更
SpringBoot如何優雅的進行參數校驗 一.爲什麼要進行參數校驗 在日常的開發過程中,我們常常需要對傳入的參數進行校驗,比如在web前後端分離項目中,參數校驗有兩個方面: 前端進行參數校驗 後端進行參數校驗 那這兩種
結構特點 List 和 Set 是存儲單列數據的集合,Map 是存儲鍵和值這樣的雙列數據的集合;List 中存儲的數據是有順序,並且允許重複;Map 中存儲的數據是沒有順序的,其鍵是不能重複的,它的值是可以有重複的,Set 中存儲的數據
本文分享自華爲雲社區《Spring高手之路17——動態代理的藝術與實踐》,作者: 磚業洋__。 1. 背景 動態代理是一種強大的設計模式,它允許開發者在運行時創建代理對象,用於攔截對真實對象的方法調用。這種技術在實現面向切面編程(AOP)
簡介: 搶紅包是我們生活常用的社交功能, 這個功能最主要的特點就是用戶的併發請求高, 在系統設計上, 可以使用非常多的辦法來扛住用戶的高併發請求, 在本文中簡要介紹使用Redis緩存中間件來實現搶紅包算法, Redis是一個在內存中基
好不容易寫好了一篇博客,現在想要把它發佈到各個平臺上供大家一起欣賞? 然後一個網站一個網站打開要發佈的博客站點,手動點創建文章,然後拷貝粘貼寫的markdown文件。 甚至有些網站還不支持markdown格式,你還需要對格式進行轉換。 每次
隨着大數據技術的快速發展,很多企業開始將Flink引入到生產環境中,以滿足日益複雜的數據處理需求。而作爲一款企業級的數據調度平臺,Apache DolphinScheduler也跟上了時代步伐,推出了對Flink任務類型的支持。 Flink
HarmonyOS實戰課程“2024鴻蒙零基礎快速實戰-仿抖音App開發(ArkTS版)”已經於今日上線至慕課網(https://coding.imooc.com/class/843.html),有致力於鴻蒙生態開發的同學們可以關注一下。
前端面試題 - 說一下原型和原型鏈? JavaScript 中,萬物皆對象,對象分爲普通對象和函數對象。 所有的函數都是函數對象(typeof f === 'function'),其他都是普通對象(typeof o === 'object'
protected function getNode(){ //$CONTROLLER_NAME = $this->_CI->router->fetch_class(); //$ACTION_NAME = $this->_
前言:授人以魚不如授人以漁.先學會用,在學原理,在學創造,可能一輩子用不到這種能力,但是不能不具備這種能力。這篇文章主要是介紹算法入門Helloword之手寫圖片識別模型java中如何實現以及部分解釋。目前大家對於人工智能-機器學習-神經網
標題:初探Java編程——開啓你的編程之旅 摘要:本文主要介紹了Java編程語言的基本概念、特點以及如何搭建Java開發環境。通過簡單的實例,讓讀者初步瞭解Java編程,爲其後續學習打下基礎。 一、Java概述 Java是一種面