怎么用java编写统计文件中的字符数、单词数和行数?

Python015

怎么用java编写统计文件中的字符数、单词数和行数?,第1张

public class Test {\x0d\x0a\x0d\x0a public static void main(String[] args) throws Exception{\x0d\x0a Scanner input=new Scanner(System.in)\x0d\x0a System.out.println("请输入路径")\x0d\x0a String path=input.next()\x0d\x0a int charNum= 0 \x0d\x0a int wordsNum= 0\x0d\x0a int lineNum = 0\x0d\x0a InputStreamReader isr = new InputStreamReader(new FileInputStream(path))\x0d\x0a BufferedReader br = new BufferedReader(isr)\x0d\x0a while( br.read()!= -1){\x0d\x0a String s = br.readLine()\x0d\x0a charNum+=s.length()\x0d\x0a wordsNum +=s.split(" ").length\x0d\x0a lineNum ++ \x0d\x0a }\x0d\x0a isr.close()//关闭\x0d\x0a System.out.println("字符数:"+charNum+"\t单词数:"+wordsNum+"行 数:"+lineNum)\x0d\x0a\x0d\x0a }\x0d\x0a}

import java.util.Scanner

import java.util.regex.* //Java使用正表达式必须导入此包

public class test{

private static int count = 0//统计正整数出现的次数

//使用正则表达式判断是否是整数(正数、负数和0)

private static boolean isNumber(String str){

return str.matches("^(0|[1-9][0-9]*|-[1-9][0-9]*)$")

}

//递归实现无限循环

private static void input(){

try { //加try...catch就是为了处理一个数字输入过长产生的异常

System.out.print("请输入一个整数:")

String inputNum = new Scanner(System.in).next()

if (isNumber(inputNum)==false) {//当输入不是整数的时候结束游戏

System.out.println("输入错误,游戏结束!")

}else if(count>2147483647||Integer.parseInt(inputNum)>Integer.MAX_VALUE||Integer.parseInt(inputNum)<Integer.MIN_VALUE){//当数字超过最大允许个数的时候提示

System.out.println("数字个数超出允许范围!")

}else if(Integer.parseInt(inputNum)>0){

count++

input() //递归调用

}else{

System.out.println("正整数有"+count+"个!")

}

} catch (Exception e) {

System.out.println("数字个数超出允许范围!")

}

}

public static void main(String[] args) {

input()

}

}

使用字符串变量。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似 字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[0]=“a”,s[9]="j",而字符串的 零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入 数组。