Menu
Coddy logo textTech

Licznik częstotliwości słów

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 56 z 65.

challenge icon

Wyzwanie

Łatwy

Kontynuując projekt analizatora tekstu, zaimplementujesz teraz najbardziej złożoną funkcję: licznik częstotliwości słów. W tym kroku utworzysz mapę, która śledzi, ile razy każde unikalne słowo pojawia się w tekście, dostarczając szczegółowych informacji o wzorcach użycia słów.

  1. Użyj zmiennej textToAnalyze z poprzedniej konfiguracji
  2. Użyj zmiennej totalCharacters z kroku zliczania znaków
  3. Użyj zmiennej wordList z kroku dzielenia tekstu na słowa
  4. Użyj zmiennej totalWords z kroku zliczania słów
  5. Użyj zmiennej uniqueWordsSet z kroku zliczania unikalnych słów
  6. Użyj zmiennej uniqueWordCount z kroku zliczania unikalnych słów
  7. Utwórz pustą mapę o nazwie wordFrequency, aby przechowywać liczbę wystąpień słów
  8. Iteruj po każdym słowie z wordList, używając pętli for-in
  9. Dla każdego słowa sprawdź, czy już istnieje w mapie, używając containsKey()
  10. Jeśli słowo istnieje, zwiększ jego licznik o 1
  11. Jeśli słowo nie istnieje, dodaj je do mapy z licznikiem równym 1
  12. Wyświetl wyniki analizy częstotliwości słów dokładnie w formacie pokazanym poniżej
  13. Wyświetl wszystkie dotychczasowe dane analizy oraz mapę częstotliwości słów z odpowiednim formatowaniem

Na przykład, jeśli analizator tekstu został skonfigurowany z użyciem "hello world hello", program powinien wyświetlić:

Text Analysis Tool - Word Frequency
====================================
Analyzing text: "hello world hello"
Total characters: 17
Words found: [hello, world, hello]
Total words: 3
Unique words: {hello, world}
Unique word count: 2
====================================
Word Frequency Analysis Results:
Word frequencies: {hello: 2, world: 1}
====================================
Word frequency analysis completed successfully.

Jeśli analizator tekstu został skonfigurowany z użyciem "the cat and the dog and the bird", program powinien wyświetlić:

Text Analysis Tool - Word Frequency
====================================
Analyzing text: "the cat and the dog and the bird"
Total characters: 32
Words found: [the, cat, and, the, dog, and, the, bird]
Total words: 8
Unique words: {the, cat, and, dog, bird}
Unique word count: 5
====================================
Word Frequency Analysis Results:
Word frequencies: {the: 3, cat: 1, and: 2, dog: 1, bird: 1}
====================================
Word frequency analysis completed successfully.

Jeśli analizator tekstu został skonfigurowany z użyciem "apple banana apple cherry banana apple", program powinien wyświetlić:

Text Analysis Tool - Word Frequency
====================================
Analyzing text: "apple banana apple cherry banana apple"
Total characters: 38
Words found: [apple, banana, apple, cherry, banana, apple]
Total words: 6
Unique words: {apple, banana, cherry}
Unique word count: 3
====================================
Word Frequency Analysis Results:
Word frequencies: {apple: 3, banana: 2, cherry: 1}
====================================
Word frequency analysis completed successfully.

Program powinien iterować po liście słów i tworzyć mapę częstotliwości, sprawdzając, czy każde słowo już istnieje w mapie. Użyj containsKey(), aby sprawdzić, czy dane słowo już istnieje, a następnie zwiększ istniejący licznik lub zainicjuj nowy wpis z licznikiem równym 1. Ta analiza częstotliwości dostarczy najbardziej szczegółowych informacji o wzorcach użycia słów w tekście.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Text analyzer setup
  String? textToAnalyze = stdin.readLineSync();
  
  // Character counting
  int totalCharacters = textToAnalyze!.length;
  
  // Word splitting and counting
  List<String> wordList = textToAnalyze.split(' ');
  int totalWords = wordList.length;
  
  // Unique word analysis
  Set<String> uniqueWordsSet = Set.from(wordList);
  int uniqueWordCount = uniqueWordsSet.length;
  
  // Display results
  print('Text Analysis Tool - Unique Words');
  print('====================================');
  print('Analyzing text: "$textToAnalyze"');
  print('Total characters: $totalCharacters');
  print('Words found: $wordList');
  print('Total words: $totalWords');
  print('====================================');
  print('Unique Word Analysis Results:');
  print('Unique words: $uniqueWordsSet');
  print('Unique word count: $uniqueWordCount');
  print('====================================');
  print('Unique word analysis completed successfully.');
}

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online