2013-10-26 5 views
0

Я разрабатываю Утилиту, которая подсчитывает слова и количество символов новой строки.Число символов новой строки

Я сделал задачу подсчета, но я не знаю как подсчитывает количество новых строк символов в файле.

Код:

System.out.println ("Counting Words"); 

InputStream stream = Run.class.getResourceAsStream("/test.txt"); 
InputStreamReader r = new InputStreamReader(stream); 
BufferedReader br = new BufferedReader (r);  
String line = br.readLine(); 
int count = 0; 

while (line != null) { 
    String []parts = line.split(" "); 
    for(String w : parts){ 
     count++;   
    } 
    line = br.readLine(); 
} 

System.out.println(count); 

тест

Это простое чтение файла с помощью программы Java

+2

Просто посчитайте, сколько строк вы прочли. – qqilihq

+1

Что случилось с 'count'? Кажется, он держит подсчет строк. –

+0

Я хочу прочитать новый символ строки, например '\ n' .... – user1030128

ответ

0
System.out.println ("Counting Words");  
InputStream stream = Run.class.getResourceAsStream("/test.txt"); 
InputStreamReader r = new InputStreamReader(stream); 
BufferedReader br = new BufferedReader (r);  
String line = br.readLine(); 
int word_count = 0; 
int line_count = 0; 

while (line != null) { 
    String[] parts = line.split(" "); 
    word_count += parts.length; 
    line_count++; 
    line = br.readLine(); 
} 

System.out.println("Word count: " + word_count + " Line count: " + line_count); 
0

Просто загляните внутрь слова:

for (char c : w.toCharArray()) { 
    if (c == '\n') { 
     numNewLineChars++; 
    } 
} 

Что входит в цикл for, который у вас уже есть.

0

Возможно, здесь лучше использовать класс LineNumberReader для подсчета и чтения строк текста. Хотя это не самый эффективный способ подсчета строк в файле (в соответствии с этим question), этого должно быть достаточно для большинства приложений.

С LineNumberReader для метода ReadLine:

Читать строку текста. Всякий раз, когда считывается ограничитель строки, текущий номер строки увеличивается. (Терминатор линии обычно является символом новой строки '\ n' или возвратом каретки '\ r').

Это означает, что при вызове метода GetLineNumber класса LineNumberReader, он возвращает номер текущей строки, которая была инкрементируется методом ReadLine.

Я включил комментарии в код ниже, объясняя это.

System.out.println ("Counting ...");  
    InputStream stream = ParseTextFile.class.getResourceAsStream("/test.txt"); 
    InputStreamReader r = new InputStreamReader(stream); 

    /* 
    * using a LineNumberReader allows you to get the current 
    * line number once the end of the file has been reached, 
    * without having to increment your original 'count' variable. 
    */ 
    LineNumberReader br = new LineNumberReader(r); 

    String line = br.readLine(); 

    // use a long in case you use a large text file 
    long wordCount = 0; 

    while (line != null) { 
     String[] parts = line.split(" "); 
     wordCount+= parts.length; 
     line = br.readLine(); 
    } 

    /* get the current line number; will be the last line 
    * due to the above loop going to the end of the file. 
    */ 
    int lineCount = br.getLineNumber(); 

    System.out.println("words: " + wordCount + " lines: " + lineCount); 
Смежные вопросы