簡體   English   中英

沖突的人物數量

[英]Conflicting character counts

我正在嘗試查找給定文本文件中的字符數。

我嘗試過使用掃描儀和BufferedReader,但結果卻相互矛盾。 通過使用掃描儀,我在添加新行字符后連接每一行。 像這樣:

    FileReader reader = new FileReader("sampleFile.txt");
    Scanner lineScanner = new Scanner(reader);
    String totalLines = "";

    while (lineScanner.hasNextLine()){
        String line = lineScanner.nextLine()+'\n';
        totalLines += line;
    }
    System.out.println("Count "+totalLines.length());

這將返回我的文件的真實字符數,即5799

而當我使用時:

 BufferedReader reader = new BufferedReader(new FileReader("sample.txt"));

 int i;
 int count = 0;
 while ((i = in.read()) != -1) {
    count++;
 }

 System.out.println("Count "+count);

我得到5892。

我知道如果只有一行,使用lineScanner將會關閉,但對於我的文本文件,我得到了正確的輸出。

另外在記事本++中,文件長度(以字節為單位)為5892,但沒有空格的字符數為5706。

您的文件可能以\\r\\n而不是\\n終止行。 這可能會導致您的差異。

您必須考慮文本文件中的換行符/回車符。 這也算作一個角色。

我建議使用BufferedReader,因為它會返回更准確的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM