给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数

public class ComputeSourceLine {

	public static void main(String[] args) throws FileNotFoundException {
		// TODO Auto-generated method stub

		// 定义相关变量
		int totalLine = 0;
		int emptyLine = 0;
		int commentLine = 0;
		int codeLine = 0;
		// 大家重点了解 Scanner类(网络搜索) 与 String类(教材P75及网络) 的使用
		// 文件的路径
		String strFileName;
		// 使用命令行的方式,如果有命令行参数,则文件名从外界获取,否则使用指定文件
		// 使用方式: java ComputeSourceLine filename   (实际中用完整的文件名替代filename)
		if(args.length>=1)
			strFileName = args[0];
		else
			strFileName = "src/ComputeSourceLine.java";

		// 使用Scanner进行读文件
		Scanner sc = new Scanner(new File(strFileName));
		while (sc.hasNextLine()) {
			String strTmp = sc.nextLine();
			// 去掉前后的空格
			strTmp = strTmp.trim();
			// 判断是否为空行、注释、代码行
			if(strTmp.length()==0)
				emptyLine ++;
			else if(strTmp.length()>2 && "//".equals(strTmp.substring(0,2))==true)
				commentLine ++;
			else
				codeLine ++;
			// System.out.println(strTmp);
		}
		// 关闭
		sc.close();
		totalLine = emptyLine+commentLine+codeLine;

		System.out.println("总行数="+totalLine);
		System.out.println("空行数="+emptyLine);
		System.out.println("注释行数="+commentLine);
		System.out.println("代码行数="+codeLine);

	}

}

时间: 2024-10-06 00:38:51

给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数的相关文章

给定一个百分制的分数,输出相应的等级。

给定一个百分制的分数,输出相应的等级.         90分以上        A级         80~89          B级         70~79          C级        60~69          D级         60分以下        E级 解决方法: import java.util.*; class Mark{ public static void main(String []args){ System.out.println("please

给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。

一.题目: n给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. n要求: n写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数.例如 f(12)  = 5. n在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少. 二.解题思路: 无. 三.程序源码: import java.util.*; public class main { public static void main(String[] args) { // TODO Au

课堂练习:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。

一.题目 1 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 2 要求: (1) 写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12)  = 5. (2)在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少. 二.设计思想 (1)一位数时 f(0)=0;f(1)=1;f(2-9)=1; (2)二位数时 f(10)=1+(0+1)=2; f(11)=(1+1)+(1+1)=4; f(12)=(1+1)+(2+1)=5;

【Java】字节流-从文件输入,输出到文件

假如需要复制一张图片,一份word,一个rar包.可以以字节流的方式,读取文件,然后输出到目标文件夹. 以复制一张4M的图片举例. 每次读一个字节: ch = (char)System.in.read(); //读入一个字符,返回读到的字节的int表示方式,读到末尾返回-1 复制时候一个字节一个字节的读取.写入,这样是很慢的.设置一个用来缓冲的字符数组,会让复制的过程快很多(每次读入的字节变多). 方便阅读,类的名称用中文描述 import java.io.*; public class 字节流

一个小巧的C++Log输出到文件类 (转)

http://blog.csdn.net/dpsying/article/details/17122739 有时候需要输出一些程序运行的信息,供我们不需要调试就可以直接查看程序运行状态.所以我们需要在程序中加入一些LOG输出. 适合涉及到虚拟机调试一些关于驱动等的程序时,或进行远程调试时. 搜了些log工具,不够轻……还是简单实现下吧 贴上来,可能有用的上: Log.h [cpp] view plaincopy /** * 用于输出log文件的类. */ #ifndef LOG_H #defin

给定一个公式字符串用java进行拆解并计算结果

需求很简单,给定一个字符串形式的公式规则,用java代码进行拆解,并能计算出结果. ?考虑字符串中数字格式[整数.小数点] ?考虑字符串中运算符[+-*/()] ?考虑空格.运算规则[被0除] 以下是参考地址,里边有讨论部分的内容: https://bbs.csdn.net/topics/380022283 下边是代码部分,可以作为一个工具类进行使用: package test; import java.util.ArrayList; import java.util.Comparator; i

解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架

程序结构:src文件夹下存放xml文件 该文件内容: <?xml version="1.0" encoding="UTF-8"?> <mystruts> <actions name="myaction1" namespace="/"> <action name="userdao" class="org.action.UserDAO"> &l

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

从第0行开始,输出第k行,传的参数为第几行,所以在方法中先将所传参数加1,然后将最后一行加入集合中返回. 代码如下: public static List<Integer> generateII(int row){ ++row; List<Integer> list = new ArrayList<Integer>(); int[][] arr = new int[row][row]; for(int j = 0;j<row;j++) { for(int k =

给定一个长度为N的数组,找出出现次数大于n/2,n/3的数,要求时间复杂度O(n),空间复杂度O(1)

先讨论出现次数大于n/2的数字,如果这样的数字存在,那么这个数出现的次数大于其他数出现的次数的总和. 在数组A中,我们定义两个数据集合a1,a2.a1为出现次数大于n/2的数的集合,a2为其余数组成的集合.对于数组 A中元素a.b,假设a不等于b,那么有两种情况,分别为:a属于a1,b属于a2:a属于a2,b属于a2.对于这两种情况,如 果把a.b从数组A中去掉,集合a1的size依旧是大于a2的.按照这个思路,我们有如下代码: int m; int count = 0; for (auto n