如何计算java文件中的注释行?

时间:2014-03-27 14:15:04

标签: python

这是我的代码的一部分,用于计算java文件中不同行的数量。在大多数情况下,此代码可以获得正确的数字。但如果注释行如下:

/ * .......

* .......

* /

它会将此块视为仅两行

        for eachLine in allLines:
            if eachLine != " " :
                eachLine = eachLine.replace(" ",""); #remove space
                eachLine = self.trim(eachLine);      #remove tabIndent
                if  (iscomment==False):
                    if(eachLine.strip().startswith("//")): #LINECOMMENT 
                        commentCount += 1;
                    if eachLine == "":
                        blankCount += 1;
                    if(eachLine.strip().startswith("/*")):
                        commentCount += 1;
                        if(not eachLine.strip().endswith("*/")):
                            iscomment=True
                else :
                    commentCount += 1;
                    if(eachLine.find("*/")):
                        iscomment=False
            lineCount = lineCount + 1;
        codeCount=lineCount-commentCount-blankCount

2 个答案:

答案 0 :(得分:0)

if(eachLine.find("*/")):

失败时返回-1,而不是假。

http://docs.python.org/2/library/string.html

答案 1 :(得分:0)

您应该考虑regexp

import re

comments = re.findall('#.*?\n', allLines)
for item in re.findall('/\*.?*\*/', allLines):
    for row in item.split('\n'):
        comments.append(row)
print(len(comments))

单独的一些东西,在我的一个非常简单的项目上尝试它,它似乎取得了适当的线路。