`

计算Java有效代码行数

阅读更多

最近在学习Python,之前也练习过,但时间一长有些东西还是有一点生疏,如果仅仅停留在看的级别上,那么对一门语言的学习也仅仅停留在了解的基础上。

今天闲着无聊,便动手写了一个计算Java代码有效行数的这样一个DEMO,里面用到了正则表达式,这个东西w 我现在用起来还是比较吃力的,纵观整个代码不过100行,但确实用了我今天一天的时间。

 

这个DEMO,不计算空行、单行注释、多行注释,只计算有效代码(其实后面应该把import以及花括号独在一行的代码也不计算在内,但目前没有处理)

 

代码很短,有些关键地方也进行了注释,其他的就不在赘述。

 

#coding=UTF-8

import sys,os,os.path
import re
count=0
filters=['java']


def input():
    global destDir
    destDir = raw_input("input dest dir:")
    destDir = destDir.strip()
    if destDir=="":
        destDir=os.curdir


def listFile(destDir):
    '''
    列出所给目录的文件,如果是文件,计算,如果是文档继续调用listFile
    '''
    global count
    if os.path.isdir(destDir)!=True:
        #过滤
        if filter(destDir) == False:
            return  
        if os.path.isfile(destDir):
            count=count+countRows(destDir)
        return
    files = os.listdir(destDir)
    for i in range(len(files)):
        listFile(os.path.join(destDir,files[i]))

def countRows(filePath):

    '''
    计算行数
    '''
    fscok=open(filePath)

    nullLineP=re.compile(r'^(\t{1,}|\n{1,}|\s{1,})$')
    singleNoteP=re.compile(r'^(\t{0,}|\s{0,})//')
    multiNoteStartP=re.compile(r'^(\t{0,}|\s{0,})(/\*)')
    multiNoteEndP=re.compile(r'(\*/)(\t{0,}|\s{0,}|\n{0,})$')
    c=0
    isMulitNoteStart=False
    for line in fscok:
        #匹配空白行
        if nullLineP.match(line)!=None :
            continue

        #匹配单行注释
        if singleNoteP.match(line)!=None:
            continue

        #匹配多行注释开始
        if multiNoteStartP.match(line)!=None:
            isMulitNoteStart=True

        #匹配多行注释结束
        #如果有开始的注释,但是没有结束的,则continue
        if isMulitNoteStart==True and multiNoteEndP.search(line)==None:
            continue
        if multiNoteEndP.search(line) !=None:
           isMulitNoteStart=False 
           continue

        c+=1

    return c


def filter(filePath):
    '''
    过滤文件
    '''
    global filters
    exName=filePath.split('.')[-1]
    if exName in filters :
        return True
    return False

if __name__=="__main__":
    input()
    listFile(destDir)
    print "%d row" % count

 

分享到:
评论

相关推荐

    java代码计算行数

    Java作为广泛使用的面向对象编程语言,其代码行数的计算对于开发者和管理者都具有重要意义。本文将深入探讨如何使用Java工具类来统计一个项目中的代码行数。 首先,我们需要理解代码行数计算的基本概念。通常,代码...

    代码行数计算工具 win版 计算代码行数

    《代码行数计算工具在Windows环境下的应用与实践》 在软件开发过程中,代码行数(Lines of Code,简称LOC)常被用作衡量项目规模、复杂度以及工作量的一个重要指标。对于开发者而言,了解项目的代码行数有助于评估...

    统计源代码行数及有效代码

    然而,对于有效的代码行数,通常指的是能够执行特定功能的代码,不包括注释和无效的空格或制表符。本文将详细介绍如何统计源代码行数以及有效代码,并探讨过滤注释行和自定义统计方式的方法。 首先,统计源代码行数...

    java代码行数统计源码

    总之,"java代码行数统计源码"提供的工具是一个实用的开发辅助程序,它综合运用了Java的文件操作、源代码解析、数据处理和可能的用户界面设计等多个技术领域,为开发者提供了一种量化评估项目规模的方式。...

    源代码计算行数计数器

    在进行源代码行数计算时,通常会区分以下几类行: 1. 实际代码行:包含有效程序逻辑的行。 2. 空行:没有代码或仅包含空白字符的行。 3. 注释行:包含开发者注释的行,它们对代码起解释作用,但不参与程序执行。 4. ...

    java代码行数统计工具

    针对Java编程语言,有一个专门用于统计代码行数的工具,它不仅适用于Java,还支持C++、Delphi和C#等其他编程语言。本文将详细介绍这个名为"IrisCodeCounter"的工具,以及如何利用它来有效地分析和管理代码库。 ...

    代码行数统计工具

    标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...

    javaweb有效代码行数计算器

    有效代码行数计算器正是为了解决这个问题,它能够智能地识别并只计算那些实际参与程序运行的代码行。 这个工具的核心功能可能包含以下几个方面: 1. **源代码解析**:计算器首先需要读取Java源文件或已打包的jar...

    java代码行数统计.zip

    Java代码行数统计工具是一种实用程序,它可以帮助开发者量化他们的工作量,跟踪项目进度,以及进行代码质量分析。这个zip文件包含的工具专门设计用来计算Java源代码中的行数,提供了一个直观的方式来了解代码库的...

    java写的源代码行数统计器.

    标题中的“java写的源代码行数统计器”指的是一个用Java编程语言开发的工具,它的主要功能是计算源代码文件中的行数。在软件开发中,行数统计有时被用作衡量项目规模或工作量的一个指标,尽管这并不是非常精确,但对...

    eclipse代码行数统计插件

    "eclipse代码行数统计插件"就是这样一个工具,它能够帮助开发者快速地统计出项目中的代码行数,包括注释和空行。 在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择...

    智能代码行数检测

    `ComputeCode.java` 文件则负责计算有效代码行数。它可能包含以下核心步骤: 1. 分析代码:对读取到的每一行代码进行分析,去除空行、注释行以及空白字符。 2. 计算有效行:识别语句结束符(如分号、大括号)来确定...

    计算代码行数小工具

    "计算代码行数小工具"是一个专为此目的设计的应用,能够帮助开发者和项目经理快速准确地统计源代码的总行数。这个小工具支持多种编程语言,使得它在处理跨语言项目时尤为方便。 首先,我们来了解一下为什么计算代码...

    js,java,c等文件代码行数计算工具

    本工具"js,java,c等文件代码行数计算工具"专注于帮助开发者统计指定编程语言(如JavaScript, Java, C)以及特定类型文件(如JSP)的代码行数,从而提供一个量化的方式来评估代码库的大小。 首先,让我们详细了解...

    代码行数计算工具英文版

    通过代码行数计算工具,开发者可以更有效地管理项目,优化代码结构,提高工作效率。Code Line Counter v1.7作为一款成熟的工具,提供了便捷的代码统计功能,对于项目管理和代码质量管理具有很大的帮助。

    JAVA代码行数计算器

    "JAVA代码行数计算器"是一个工具,专门用于统计Java源代码中的行数,它可以帮助开发者和项目经理快速获取项目的基本统计信息。 Java代码行数计算器通常包括以下功能: 1. **计数类型**:它不仅计算实际的代码行,还...

    统计代码的有效行数

    然而,仅仅计算总的代码行数并不准确,因为注释、空行和嵌套结构等因素都会影响实际的工作量。因此,"有效行数"通常指的是可执行代码的行数,不包括注释和空白行。 要统计代码的有效行数,开发者可以借助各种工具,...

    统计java c++ b等语言的代码行数

    标题提到的“统计java c++ b等语言的代码行数”是指利用特定工具来计算不同编程语言的源代码中各种类型的行数,包括空行、注释行和有效代码行。这个工具特别针对Java、C++和可能的B语言(可能是Basic的一种变体)...

Global site tag (gtag.js) - Google Analytics