vjame

优化代码是无止境的
随笔 - 65, 文章 - 9, 评论 - 26, 引用 - 0
数据加载中……

代码统计

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class CodeCounter {
    
    
static long normalLines = 0;
    
static long commentLines = 0;
    
static long whiteLines = 0;
    
    
public static void main(String[] args) {
        File f 
= new File("D:\\share\\JavaProjects\\TankWar1.9.11\\src");
        File[] codeFiles 
= f.listFiles();
        
for(File child : codeFiles){
            
if(child.getName().matches(".*\\.java$")) {
                parse(child);
            }
        }
        
        System.out.println(
"normalLines:" + normalLines);
        System.out.println(
"commentLines:" + commentLines);
        System.out.println(
"whiteLines:" + whiteLines);
        
    }

    
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();
                }
            }
        }
    }

}

posted on 2009-02-09 13:23 lanjh 阅读(448) 评论(5)  编辑  收藏 所属分类: Java App

评论

# re: 代码统计  回复  更多评论   

这个算法比较简单,而且没有考虑折行的问题,难能可贵的是是自己实现这个算法,鼓励了
2009-02-10 11:13 | jeasonzhao

# Pharmacy  回复  更多评论   

Hi. In the future I'm going to keep here links to their sites. But I do not worry about the sites where my link is removed. So if you do not want to see a mountain of links, simply delete this message. After 2 weeks, I will come back and check.
2009-05-12 01:53 | Taddeo

# Wall clock  回复  更多评论   

Hello everyone. Speak when you are angry--and you will make the best speech you'll ever regret.
I am from Egypt and learning to write in English, please tell me right I wrote the following sentence: "Synthroid and phentermine, tramadol cheap price, phentermine with vit injection, phentermine no prescription online consultation, addition in order phentermine."

Thank you so much for your future answers :-(. Zaccheus.
2009-05-15 19:25 | Zaccheus

# Payday LOan  回复  更多评论   

Give please. Use what you have to run toward your best - that's how I now live my life.
I am from Czech and also now'm speaking English, give please true I wrote the following sentence: "Progesterone, synthroid, flagyli I pulses azith m w f sun, estriol, progesterone, synthroid, and pulsing w flagyli."

Thanks for the help 8), Doreen.
2009-05-19 11:45 | Doreen

# Turbo Tax  回复  更多评论   

Hi everyone. I love you so much. Great place to visit. Help me! Can not find sites on the: Turbo Tax. I found only this - <a href="http://turbo-tax.biz">turbo tax</a>. Buy cytomel liothyronine sodium online. Synthroid too high synthroid and cholesterol soon after starting synthroid taken with adderall tramadol, he began to. With respect ;-), Rosalyn from Jamaica.
2009-05-24 18:55 | Rosalyn

只有注册用户登录后才能发表评论。


网站导航: