import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
*
* @author Mr Luo
* email 972459637@qq.com
*/
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:\\New folder");
File[] codeFiles = f.listFiles();
for (File child : codeFiles){
if(child.getName().matches(".*\\.java{1}quot;)){
parse(child);
}
}
System.out.println("normalLines: " + normalLines);
System.out.println("commentLines: " + commentLines);
System.out.println("whiteLines: " + whiteLines);
}
private static void parse(File child) {
BufferedReader bf = null;
boolean comment = false;
try {
bf = new BufferedReader(new FileReader(child));
String line = "";
while((line = bf.readLine()) != null) {
line = line.trim();
if(line.matches("^[\\s&&[^\\n]]*{1}quot;)){
whiteLines ++;
} else if(line.startsWith("/*") && !line.endsWith("*/")){
commentLines ++;
comment = true;
} else if (true == comment){
commentLines ++;
if(line.endsWith("*/")){
comment = false;
}
} else if(line.startsWith("//")){
commentLines ++;
} else if(line.startsWith("/*") && (line.endsWith("*/"))){
commentLines ++;
}
else{
normalLines ++;
}
}
} catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(bf != null) {
try {
bf.close();
bf = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
Java作为广泛使用的编程语言,提供了强大的正则表达式支持,使得我们能够有效地解析和处理日志文件。本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作...
- 使用正则表达式可以编写代码统计程序,例如计算源码文件中的单词数量、行数或特定关键字出现次数。 7. **抓取网页中的email地址** - 正则表达式非常适合从HTML文本中提取电子邮件地址,通过定义符合电子邮件...
通过这样的方式,我们可以有效地统计Java代码中的空行、注释行和代码行,这对于代码分析和维护具有重要的实践意义。这种方法不仅适用于个人学习,也是许多开发工具和持续集成系统中常见的功能。
工具会遍历指定路径下的所有.java文件,运用预设的正则表达式对每一行进行匹配,然后统计各类行的数量。 统计结果对于开发者和项目管理者来说具有重要意义。它不仅可以作为衡量个人工作效率的指标,还可以用于评估...
3. 正则表达式:Java 文件扫描程序使用正则表达式来匹配 Java 文件。 4. 日期和时间处理:Java 文件扫描程序使用 Java 的日期和时间处理 API 来记录程序的开始和结束时间。 Java 文件扫描程序的应用场景 Java 文件...
本话题主要关注如何统计Java项目中的有效代码量、注解量和空行数。我们将通过编写一个Java程序来实现这一功能,并以`CodeCount.java`作为我们的核心工具文件,而`a.java`和`b.java`则是我们用于测试的Java源代码文件...
这篇关于“源码关键字统计”的主题旨在分析Java源代码文件,并计算其中出现的关键字数量。这个任务涉及到文件读取、字符串处理、正则表达式以及对Java语法的深入理解。 首先,我们需要理解如何从控制台获取Java源...
此外,开发者可能会利用Java的内置类库,如`java.nio.file`包进行文件操作,以及正则表达式进行文本解析。对于更复杂的代码结构分析,可能需要引入第三方库,如JavaCC或ANTLR等解析器生成器。 总的来说,这个Java...
这个程序巧妙地结合了Java的基础输入输出、正则表达式和文件操作等技术。下面我们将详细讨论这些知识点。 1. **命令行参数**:在Java中,可以使用`public static void main(String[] args)`方法来接收命令行参数。`...
总的来说,创建这样一个代码计数程序涵盖了Java基础、文件操作、字符串处理、正则表达式、数据结构、多线程、编译原理以及软件测试等多个方面的知识。这不仅锻炼了开发者的技术能力,也提高了他们对代码质量和项目...
总的来说,"java字数统计程序"这个项目涵盖了Java编程的基础知识,包括输入输出、字符串处理、异常处理、面向对象编程、正则表达式、用户界面设计以及文件操作等多个方面,是学习和巩固Java技术的一个好实践。...
如果你正在编写自己的统计脚本,可以使用正则表达式来匹配并排除注释。 以 Python 为例,你可以使用以下简单的正则表达式来匹配和删除注释行: ```python import re def remove_comments(code): comment_pattern...
Java工程代码行计算器是一款实用工具,它专门设计用于统计Java项目的源代码数量,提供有关总代码行、空白行和实际代码行的详细信息。在软件开发过程中,代码行计数可以作为评估项目规模、复杂性以及工作量的一种方法...
1. **文件I/O操作**:在统计代码数量时,程序需要读取Java源代码文件。Java的`java.io`包提供了许多类来处理文件输入输出,如`FileReader`, `BufferedReader`等,用于读取文件内容。 2. **文本解析**:Java代码由...
在C#编程环境中,我们经常会遇到需要...总结起来,在C#中实现“字数统计”功能主要涉及正则表达式、字符串操作以及文件I/O。通过合理地组合这些技术,你可以构建出高效且灵活的字数统计工具,满足各种应用场景的需求。
4. **自动化脚本**:编写自定义脚本,利用正则表达式或其他解析技术,对非Java文件进行行数统计。 在实际开发中,除了代码行数外,质量、可读性和复杂性也是评估代码的重要因素。因此,虽然代码行数是一个直观的...
2. **正则表达式匹配**:利用特定的正则表达式来区分不同的代码部分。 3. **语法解析器**:对于一些高级工具,会使用语言的语法解析器来更准确地分析代码结构。 四、SourceCounter-downgod介绍 虽然没有提供具体...
你可以使用专用的代码统计工具,如LineCount,或者编写脚本通过正则表达式匹配来统计。统计Delphi代码行时,要区分注释、空行和有效代码行,以便更准确地评估项目复杂性。 2. **C语言代码行统计** C语言的代码行...
此外,可能还需要使用正则表达式来验证电话号码的格式是否正确。 5. **统计分析**:程序的核心是统计分析部分,可能包括计算电话号码的总数、唯一电话号码的数量、最频繁出现的电话号码等。这需要使用循环、条件...
然后,我们需要对文本进行分词,通常使用正则表达式来分割字符串,找出所有的单词。Java的Pattern和Matcher类可以实现这一功能。 4. 字符串操作与统计: 分词后,我们需要计算单词总数和平均长度。这涉及到对字符...