Gitee项目地址
https://gitee.com/zhang55/codes/jqrv52zat8og4ndc1s60798
解题思路
WordCount功能为统计文件中信息,主要涉及的知识为文件IO流和对字符串的处理。选择了最近新了解不太熟悉的java完成。
程序要求在控制台输入参数后运行,所以编程时将输入的参数存入args[]中进行逐个判断。
程序主要功能是要完成对指定文本内的字符数、单词总数和行数进行统计,基本功能还是很简单,由于时间问题,只完成了最基本的功能。
在过程中遇到很多的问题,百度一下,你就知道。
程序实现及代码说明
实现代码主要创建了了三个类,是一些很基本的操作,具体代码如下。
代码说明
1.实现统计字数
public static int charNum(String fileName) throws IOException {
while((tempChar = reader.read())!=-1)
{
//判断是不是回车
if (tempChar==13||tempChar==10||tempChar==9)
charCount++;
character=(char)tempChar;
}
reader.close();
}
2.实现统计行数
public static int lineNum(String fileName) throws IOException{
reader=new BufferedReader(new FileReader(file));
String tempString =null;
int line =0;
while((tempString=reader.readLine())!=null)
{
line++;
}
reader.close();
return line;
}
3.统计字符个数
public static int wordsNum(String fileName) throws IOException {
while((tempChar=reader.read())!=-1) {
if(tempChar>=65&&tempChar<=90||(tempChar>=97&&tempChar<=122)) {
isChar=true;
}else {
if(isChar=true)
{
isChar=false;
wordCount++;
}
continue;
}
}
4.主函数
public static void main(String[] args) {
if (args.length > 1) {
int last = args.length - 1;
String name = args[last];
String outputName = "";
String tmp;
int flag = 0;
WordCount wc=new WordCount();
for (int i = 0; i < last; i++)
if (args[i].equals("-o")) {
flag = 1;
name = args[last - 2];
outputName = args[last];
break;
}
for (int i = 0; i < last; i++)
if (args[i].equals("-c")) {
System.out.println(wc.charNum( name));
} else if (args[i].equals("-w")) {
System.out.println(wc.wordsNum( name ));
} else if (args[i].equals("-l")) {
System.out.println(wc.lineNum( name));
}
}
测试: