問題描述:
用Java統計txt文件下的字符、單詞和行的總數,
並且查詢特定字母出現的次數,
如果輸入不規範,則重新輸入,直到輸入爲一個字母位置,
並且查詢該字母在文件中出現的次數
代碼實現:(此處文件名爲“an_interesting_story.txt”)
package com.HelloWorld;
import java.util.*;
import java.io.File;
import java.util.Scanner;
public class Fileoperation{
public static void main(String[] args) throws Exception {
File file = new File("an_interesting_story.txt");
if(!file.exists()) {
System.out.println("The file is Null");
System.exit(0);
}
Scanner cin = new Scanner(file);
int charactere=0, words=0, lines=0;
while(cin.hasNext()) {
String line = cin.nextLine();
lines++;
charactere+=line.length();
String[] s = line.trim().split("[\\W]+");
words+=s.length;
//System.out.println(s.length);
}
System.out.println("File " + file + " has");
System.out.println(charactere + " charactere");
System.out.println(words + " words");
System.out.println(lines + " lines");
Scanner input = new Scanner(System.in);
Scanner cout = new Scanner(file);
System.out.print("請輸入一個需要匹配文件的字母:");
boolean flag = true;
int sum=0;
while(flag) {
char ch = input.nextLine().charAt(0);
try {
is(ch);
while(cout.hasNext()) {
String line = cout.nextLine();
for(int i=0; i<line.length(); ++i)
if(line.charAt(i) == ch)
sum++;
}
System.out.println(ch + "出現的次數爲: " + sum);
flag = false;
}catch(Exception e){
System.out.print("格式不正確,請重新輸入: ");
}
}
}
public static void is(char ch) throws Exception{
if(!((ch>='a' && ch<='z') || (ch>='A' && ch<='Z')))
throw new Exception();
}
}