public static void main(String args[]) throws FileNotFoundException
{
String inputFileName = "textfile.txt";
printFileStats(inputFileName);
}
public static void printFileStats(String fileName) throws FileNotFoundException
{
String outputFileName = "outputtextfile.txt";
File inputFile = new File(fileName);
Scanner in = new Scanner(inputFile);
PrintWriter out = new PrintWriter(outputFileName);
int lines = 0;
int words = 0;
int characters = 0;
while(in.hasNextLine())
{
lines++;
while(in.hasNext())
{
in.next();
words++;
}
}
out.println("Lines: " + lines);
out.println("Words: " + words);
out.println("Characters: " + characters);
in.close();
out.close();
}
我有一個包含五條線我的輸出是假設整個文件是一個線
this is
a text
file
full of stuff
and lines
一個文本文件的代碼創建一個輸出文件
Lines: 1
Words: 10
Characters: 0
然而,如果刪除了能夠讀取文件中的字數,它正確地說明了行數(5)。這是爲什麼發生?
護理解釋說,做什麼,到底是什麼?如果這太麻煩了,我會在其他地方進行研究,但是我真的很感激它!我想完全理解我正在注入我的程序中的代碼。 什麼是「\\ s」? – user2770254
之前,您只是檢查您的輸入*是否有*新的單詞/行。我在這裏做的實際上是將行讀入一個變量('String line = in.nextLine();'),然後我將這個'String'拆分成一個更小的'String'/(假設單詞由空格分隔,在這種情況下它們是)。一旦我有了一系列單詞,我可以看到多長時間才能看到該單詞有多少單詞,然後轉到下一行。 – Josh
啊,只是看到你的編輯。 '「\\ s」'是一個正則表達式,意思是「任何空格字符」。正則表達式(正則表達式)有一個學習曲線,但是當你進入編程時,你會發現它們非常有用/有時是必要的。他們值得谷歌;我喜歡[本網站](http://www.regular-expressions.info/)瞭解概述信息。 – Josh