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

如题所述

    在C盘新建文件1.txt,输入任意字符,如下图:

    编写java代码。如下:

    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.TreeMap;

    public class Test {
    // 统计数字或者字符出现的次数
    public static TreeMap<Character, Integer> Pross(String str) {
    char[] charArray = str.toCharArray();

    TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();

    for (int x = 0; x < charArray.length; x++) {
    if (!tm.containsKey(charArray[x])) {
    tm.put(charArray[x], 1);
    } else {
    int count = tm.get(charArray[x]) + 1;
    tm.put(charArray[x], count);
    }
    }
    return tm;
    }

    public static void main(String[] args) {
    BufferedReader br = null;
    int line = 0;
    String str = "";
    StringBuffer sb  = new StringBuffer();
    try {
    br = new BufferedReader(new FileReader("c:\\1.txt"));
    while ((str = br.readLine()) != null) {
    sb.append(str);
    ++line;
    }
    System.out.println("\n文件行数: " + line);
    System.out.println("\n文件内容: " + sb.toString());
    TreeMap<Character, Integer> tm = Pross(sb.toString());
    System.out.println("\n字符统计结果为:" + tm);
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (br != null) {
    try {
    br.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    }
    }

    运行结果如下图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-10-25
public class Test {

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

}
}本回答被网友采纳
第2个回答  2010-10-26
public class Test {

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

}
}
第3个回答  2010-10-26
int charnumber = 0 ;
int words = 0;
int linenumber = 0;
String path="c:/文件名";

InputStreamReader isr = new InputStreamReader(new FileInputStream(path));
BufferedReader br = new BufferedReader(isr);
while((c = br.read()) != -1){
String s = br.readLine();
charnumber+=s.length();
words +=s.split(' ').length;
linenumber ++;
}
isr.close();
System.out.println("字符数:"+charnumber);
System.out.println("单词数:"+words);
System.out.println("行 数:"+linenumber);
相似回答