Menu
Coddy logo textTech

Вывод результатов анализа

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 57 из 65.

challenge icon

Задание

Легко

В этом заключительном уроке проекта «Анализатор текста» вы создадите комплексное отображение всех результатов анализа, которые вы собрали на протяжении всего проекта. На этом этапе вы отформатируете и представите всю статистику в виде четкого профессионального резюме, демонстрирующего полный анализ текста.

  1. Используйте все переменные из предыдущих этапов проекта:
    • textToAnalyze из настройки вашего проекта
    • totalCharacters из этапа подсчета символов
    • wordList из этапа разделения слов
    • totalWords из этапа подсчета слов
    • uniqueWordsSet из этапа подсчета уникальных слов
    • uniqueWordCount из этапа подсчета уникальных слов
    • wordFrequency из этапа счетчика частоты слов
  2. Создайте подробный итоговый отчет, в котором отображаются все результаты анализа
  3. Отформатируйте вывод так, чтобы показать полное резюме анализа текста
  4. Включите всю статистику с четкими метками и правильным форматированием
  5. Отобразите результаты точно в том формате, который показан ниже

Например, если ваш анализатор текста был настроен с "hello world hello", ваша программа должна вывести:

=======================================
    TEXT ANALYSIS COMPLETE REPORT    
=======================================
Original Text: "hello world hello"
=======================================
ANALYSIS SUMMARY:
- Total Characters: 17
- Total Words: 3
- Unique Words: 2
- Most Common Word: hello (appears 2 times)
=======================================
DETAILED BREAKDOWN:
Word List: [hello, world, hello]
Unique Words Set: {hello, world}
Word Frequency Map: {hello: 2, world: 1}
=======================================
Analysis completed successfully!
Text contains 2 unique words out of 3 total words.
=======================================

Если ваш анализатор текста был настроен с "the cat and the dog and the bird", ваша программа должна вывести:

=======================================
    TEXT ANALYSIS COMPLETE REPORT    
=======================================
Original Text: "the cat and the dog and the bird"
=======================================
ANALYSIS SUMMARY:
- Total Characters: 33
- Total Words: 8
- Unique Words: 5
- Most Common Word: the (appears 3 times)
=======================================
DETAILED BREAKDOWN:
Word List: [the, cat, and, the, dog, and, the, bird]
Unique Words Set: {the, cat, and, dog, bird}
Word Frequency Map: {the: 3, cat: 1, and: 2, dog: 1, bird: 1}
=======================================
Analysis completed successfully!
Text contains 5 unique words out of 8 total words.
=======================================

Если ваш анализатор текста был настроен с "apple banana apple cherry banana apple", ваша программа должна вывести:

=======================================
    TEXT ANALYSIS COMPLETE REPORT    
=======================================
Original Text: "apple banana apple cherry banana apple"
=======================================
ANALYSIS SUMMARY:
- Total Characters: 38
- Total Words: 6
- Unique Words: 3
- Most Common Word: apple (appears 3 times)
=======================================
DETAILED BREAKDOWN:
Word List: [apple, banana, apple, cherry, banana, apple]
Unique Words Set: {apple, banana, cherry}
Word Frequency Map: {apple: 3, banana: 2, cherry: 1}
=======================================
Analysis completed successfully!
Text contains 3 unique words out of 6 total words.
=======================================

Ваша программа должна определить самое часто встречающееся слово, найдя слово с наибольшим значением частоты в карте wordFrequency. Используйте интерполяцию строк для отображения всех собранных данных в профессиональном, удобном для чтения формате. Этот финальный отчет объединяет всю работу по анализу, которую вы проделали на протяжении проекта, в одно исчерпывающее резюме.

Попробуйте сами

import 'dart:io';

void main() {
  String? textToAnalyze = stdin.readLineSync();
  
  int totalCharacters = textToAnalyze!.length;
  
  List<String> wordList = textToAnalyze.split(' ');
  
  int totalWords = wordList.length;
  
  Set<String> uniqueWordsSet = wordList.toSet();
  
  int uniqueWordCount = uniqueWordsSet.length;
  
  Map<String, int> wordFrequency = {};
  
  for (String word in wordList) {
    if (wordFrequency.containsKey(word)) {
      wordFrequency[word] = wordFrequency[word]! + 1;
    } else {
      wordFrequency[word] = 1;
    }
  }
  
  print('Text Analysis Tool - Word Frequency');
  print('====================================');
  print('Analyzing text: "$textToAnalyze"');
  print('Total characters: $totalCharacters');
  print('Words found: $wordList');
  print('Total words: $totalWords');
  print('Unique words: $uniqueWordsSet');
  print('Unique word count: $uniqueWordCount');
  print('====================================');
  print('Word Frequency Analysis Results:');
  print('Word frequencies: $wordFrequency');
  print('====================================');
  print('Word frequency analysis completed successfully.');
}

Все уроки раздела Логика и управление потоком