题目要求
编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目。
代码示例
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
String pathString = "C:\\Users\\86137\\Desktop\\";
Scanner sin = new Scanner(System.in);
System.out.println("请输入文件名称:");
pathString+=sin.next();
File f = new File(pathString);
Map<String, Integer> map = new HashMap<String, Integer>();
Map<Character, Integer> map1 = new HashMap<Character, Integer>();
if (!f.exists())
{
System.out.println("creating...");
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileReader fReader = new FileReader(f);
Scanner in = new Scanner(fReader);
String aString = in.nextLine();
while(in.hasNext()) {
String [] strings = aString.split(" ");
for(String s:strings) {
if(map.containsKey(s)) {
map.put(s, map.get(s)+1);
}
else {
map.put(s, 1);
}
for(int i=0;i<s.length();i++) {
if(map1.containsKey(s.charAt(i))) {
map1.put(s.charAt(i), map1.get(s.charAt(i))+1);
}
else {
map1.put(s.charAt(i), 1);
}
}
}
aString = in.nextLine();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("字符数目统计:");
map1.forEach((k,v)->
System.out.println(k+":"+v)
);
System.out.println("单词数目统计:");
map.forEach((k,v)->
System.out.println(k+":"+v)
);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/103070.html