Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Подсчитать количество уникальных слов в файле / 5 сообщений из 5, страница 1 из 1
11.06.2015, 23:51
    #38982751
alexander30
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать количество уникальных слов в файле
Здравствуйте
Как сделать ,чтобы можно было подсчитать уникальные слова, а не все, как сейчас.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
package com.java.training.eight;
import java.io.*;
// Подсчитать количество уникальных слов в файле 
class four{
    public static void main(String[] args) throws  IOException{
        int wordcount=0;
        FileReader file = new FileReader("D:\\file.txt");
        StreamTokenizer fileTokenizer =new StreamTokenizer(file);
        while ((fileTokenizer.nextToken()) !=StreamTokenizer.TT_EOF){
        if(fileTokenizer.ttype==StreamTokenizer.TT_WORD)
         wordcount++;
        }
        System.out.println("Количество уникальных слов: " +wordcount);
    }
}
...
Рейтинг: 0 / 0
12.06.2015, 05:09
    #38982783
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать количество уникальных слов в файле
alexander30,

а можно ли все эти слова загнать в HashMap или так нельзя? (там же всегда уникальные ... или я ошибаюсь?)

З.Ы. это просто как вариант (я тоже новичок)
...
Рейтинг: 0 / 0
12.06.2015, 05:32
    #38982788
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать количество уникальных слов в файле
Музаффарзагнать в HashMap или так нельзя?HashSet'а будет достаточно
...
Рейтинг: 0 / 0
13.06.2015, 14:58
    #38983248
alexander30
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать количество уникальных слов в файле
я сделал следующим образом

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
package com.java.training.eight;
import java.io.*;
import java.util.HashSet;
// Подсчитать количество уникальных слов во всех java файлах в папке.
class FNFilter implements FilenameFilter{
    String mask;
    FNFilter(String mask){
        this.mask=mask;
    }
    public boolean accept(File dir,String name){
        String f=new File(name).getName();
        return f.indexOf(mask) !=-1;
    }
}
 public class var2 {
     public static void main(String[] args) {
         HashSet<String> words = new HashSet<>();
         BufferedReader file = null;
         File[] list = new File("D:\\com\\java\\training\\eight\\").listFiles(new FNFilter("java"));
         try {
             for (int i = 0; i < list.length; i++) {
                 file = new BufferedReader(new FileReader(list[i]));
                 StreamTokenizer word = new StreamTokenizer(file);
                 while ((word.nextToken()) != StreamTokenizer.TT_EOF) {
                    if(word.ttype==StreamTokenizer.TT_WORD){
                         words.add(word.sval);
                     }
                 }
             }
         } catch (IOException e) {
             System.out.println(e);
         }
         System.out.println(words.size());
         for (String TEXT : words) {
             System.out.println(TEXT);
         }
     }
 }


Возник следующий вопрос .как настроить StreamTokinezer ,чтобы он не обращал внимания на точки и другие знаки .А то такие слова (com.java.training.eight , java.util. и т.д) воспринимаются как одно слово.
...
Рейтинг: 0 / 0
13.06.2015, 22:11
    #38983324
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчитать количество уникальных слов в файле
alexander30,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public static int countWords(java.io.File file) {
    java.util.Set<String> words = new java.util.HashSet<>();
    try (java.util.Scanner scan = new java.util.Scanner(file)) {
        while (scan.useDelimiter("[^\\w]+").hasNext()) {
            words.add(scan.next());
        }
    } catch (java.io.IOException e) {
        e.printStackTrace(System.out);
    }
    return words.size();
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Подсчитать количество уникальных слов в файле / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]