Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 05.09.2019
Сообщений: 33

Написать программу для считывания и сортировки из файла

15.03.2022, 22:30. Показов 925. Ответов 3
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текст в текстовом файле. Текст на естественном английском языке. Необходимо получить отсортированный список слов текста по частоте встречаемости с указанием количества применения слова.

Написал только считывание из файла, необходимо дописать программу
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
package com.company;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
 
public class Main {
        public void main() {
        }
 
        public static void main(String... args) throws FileNotFoundException {
            String separator = File.separator;
            String path = "F:" + separator + "Study" + separator + "Java" + separator + "IntelliJ" + separator + "text.txt";
            File file = new File(path);
            Scanner scanner = new Scanner(file);
 
 
            while(scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
 
            scanner.close();
        }
    }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2022, 22:30
Ответы с готовыми решениями:

Написать программу для считывания содержимого текстового файла
1 написать программу для считывания содержимого текстового файла. 2 Написать программу для сохранения системой даты и времени в текстовый...

Написать программу для считывания элементов матрицы размером М х N из файла
Помогите решить такую проблему. Задача проста но суть в том чтобы не пользоваться Fstream и stdio.h. Нужно используя библиотеку iostream...

Поогите написать программу считывания произвольного количества строк из текстового файла
Ну вводиш в программу файл например формата txt. В этом файле что то написанно. И нажимая enter программа выдает нам, напимер 5 строк из...

3
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
15.03.2022, 23:57
Цитата Сообщение от roise511
необходимо дописать программу
Создайте класс Counter по аналогии с Python:
Java
1
2
3
4
5
6
7
8
9
10
11
public class Counter<T> {
  final Map<T, Integer> cnt = new HashMap<>();
 
  public void Add(T t) {
    cnt.merge(t, 1, Integer::sum);
  }
 
  public int Count(T t) {
    return cnt.getOrDefault(t, 0);
  }
}
Далее, после прочтения файла, переводите текст в нижний регистр, убираете все знаки пунктуации, разбейте строки на слова, слова поместите в счётчик:
Java
1
2
3
final Counter<String> counter = new Counter<>();
...
counter.add(/* слово */);
1
9 / 6 / 5
Регистрация: 12.05.2011
Сообщений: 282
16.03.2022, 00:07
Лучший ответ Сообщение было отмечено roise511 как решение

Решение

Держи, немного топорный вариант, но работает:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
 
public class Tekst {
    public static void main(String... args) throws FileNotFoundException {
        ArrayList<String> words = new ArrayList<>();
        String separator = File.separator;
        String path = "F:" + separator + "Study" + separator + "Java" + separator + "IntelliJ" + separator + "text.txt";
        File file = new File(path);
        Scanner scanner = new Scanner(file);
 
 
        while(scanner.hasNextLine()) {
            String line = scanner.nextLine();
            line = line.replace(".","");
            line = line.replace(",","");
            line = line.replace(":","");
            line = line.replace("-","");
            line = line.replace(";","");
            line = line.replace("!","");
            line = line.replace("?","");
            line = line.replace(")","");
            line = line.replace("(","");
            line = line.replace("  "," ");
            String[] w = line.split(" ");
            words.addAll(Arrays.asList(w));
        }
        scanner.close();
 
        HashMap<String,Integer> uniqWords = new HashMap<>();
 
        for (String s: words) {
            int i = 0;
            for (String ss: words) {
                if (s.equals(ss)){
                    i++;
                }
            }
            uniqWords.put(s,i);
        }
 
        Map<String, Integer> sortedMapAsc = sortByValue(uniqWords, true);
        printMap(sortedMapAsc);
    }
 
    private static Map<String, Integer> sortByValue(Map<String, Integer> unsortMap, final boolean order)
    {
        List<Entry<String, Integer>> list = new LinkedList<>(unsortMap.entrySet());
 
        // Sorting the list based on values
        list.sort((o1, o2) -> order ? o1.getValue().compareTo(o2.getValue()) == 0
                ? o1.getKey().compareTo(o2.getKey())
                : o1.getValue().compareTo(o2.getValue()) : o2.getValue().compareTo(o1.getValue()) == 0
                ? o2.getKey().compareTo(o1.getKey())
                : o2.getValue().compareTo(o1.getValue()));
        return list.stream().collect(Collectors.toMap(Entry::getKey, Entry::getValue, (a, b) -> b, LinkedHashMap::new));
 
    }
 
    private static void printMap(Map<String, Integer> map)
    {
        map.forEach((key, value) -> System.out.println("Слово : '" + key + "'"+"\t"+"Кол-во в тексте : " + value));
    }
}
1
0 / 0 / 0
Регистрация: 05.09.2019
Сообщений: 33
16.03.2022, 00:17  [ТС]
Очень благодарен, выручили, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.03.2022, 00:17
Помогаю со студенческими работами здесь

Написать программу для считывания новостей
Кто нибудь когда либо создавал программку для считывания новостей с других сайтов и автоматическую их загрузку себе на сайт? Помогите где...

Написать функцию шаблон, для считывания из файла
Написать функцию шаблон, для считывания из файла

Написать программу для сортировки последовательности 34 18 2 6 14 17 24 5 8 методом быстрой сортировки. На каж
Написать программу для сортировки последовательности 34 18 2 6 14 17 24 5 8 методом быстрой сортировки. На каждом шагу выводить результат...

Инструментарий Java для считывания PDF файла в программу
Как прочитать pdf файл в программу?? Какие есть для этого инструменты java?? Можете привести фрагмент кода или пример чтения данных из pdf...

Создать программу для считывания имени файла (.txt)
Здравствуйте. Не знаете: каким способом в vba можно задать код, чтобы считывать имена файла(ов) одного типа (в данном случае - .txt) в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru