Сколько раз слово было упомянуто - PullRequest
0 голосов
/ 13 февраля 2012

Я делаю простую Java-программу, которая должна читать текстовый файл и подсчитывать количество упоминаний конкретного слова.Это то, что я имею ниже, оно компилируется и работает нормально, но продолжает возвращать 0 для ответа, когда оно должно доходить до тысяч ...

В этом случае мне интересно, сколько раз было "через"упоминается в этом файле ...

/*AUTHOR Yun Lee
Finding out the number of tweets per day*/

import java.io.*;
import javax.swing.*;
import java.util.Scanner;

class tweetnumber
{

public static void main(String args[])
{
    try
    {

        FileInputStream fstream = new FileInputStream("tacobell.23jan2012.txt");
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;

        int counter1 = 0;
        String s = "am via";

        while ((strLine = br.readLine()) != null)   
        {
            System.out.println (strLine);
            if (strLine.contains(s))
            {
                counter1++;
            }

        }
        in.close();
        System.out.println("There were " + counter1 + " messages in the AM of this day");
    }

    catch (Exception e)
    {
        System.err.println("Error: " + e.getMessage());
    }

}
}

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

A FileInputStream - это , которое предполагается использовать для

FileInputStream предназначен для чтения потоков необработанных байтов, таких как данные изображения. Для чтения потоков символов рассмотрите возможность использования FileReader.

Поскольку вы пытаетесь читать символы, попробуйте открыть файл по-другому. Вы можете попробовать:

File f = new File("tacobell.23jan2012.txt");
BufferedReader br = new BufferedReader(new FileReader(f));
1 голос
/ 13 февраля 2012

Я протестировал его, и он работает для текстового файла, кодируемого как ANSI. Затем я попробовал его в том же файле, закодированном как Unicode, с одним дополнительным «подозрительным» символом, таким как: ♣, и пошло: 0 Поэтому проверьте ваш входной файл или то, как вы его читаете.

Попробуйте этот пост здесь .

0 голосов
/ 13 февраля 2012

DataInputStream может не преобразовывать ваш файл из байтов в символы должным образом.Попробуйте удалить его и передать FileInputStream в конструктор InputStreamReader.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...