这是我的代码的一部分,用于计算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
答案 0 :(得分:0)
答案 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))
单独的一些东西,在我的一个非常简单的项目上尝试它,它似乎取得了适当的线路。