Maison > Java > javaDidacticiel > le corps du texte

Comment compter efficacement les fréquences de caractères dans une chaîne ?

Patricia Arquette
Libérer: 2024-10-31 07:21:30
original
657 Les gens l'ont consulté

How to Efficiently Count Character Frequencies in a String?

Comptage de la fréquence des caractères dans les chaînes

Une tâche courante en programmation consiste à compter la fréquence des caractères dans une chaîne donnée. Supposons que nous ayons une chaîne « aasjjikkk ». Nous voulons déterminer le nombre de chaque caractère unique, ce qui donne "2 'a', 1 's', 2 'j', 1 'i', 3 'k'."

Solution Utiliser Java Map

Une solution efficace consiste à utiliser une Java Map, qui associe des clés (dans ce cas, des caractères) à des valeurs (le nombre de leurs occurrences). Nous parcourons la chaîne et vérifions si chaque caractère est déjà dans la carte. Si c'est le cas, nous incrémentons son décompte ; sinon, nous l'insérons avec un nombre de 1.

<code class="java">Map<Character, Integer> map = new HashMap<>();
String s = "aasjjikkk";
for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    Integer val = map.get(c);
    if (val != null) {
        map.put(c, val + 1);
    }
    else {
        map.put(c, 1);
    }
}
Copier après la connexion

Cette approche fournit une représentation naturelle du nombre de caractères dans un format de paire clé-valeur.

Solution alternative utilisant Multiset

Alternativement, la structure de données Multiset de Guava nous permet de compter les occurrences d'éléments sans maintenir explicitement une carte.

<code class="java">Multiset<Character> multiset = HashMultiset.create();
String s = "aasjjikkk";
for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    multiset.add(c);
}</code>
Copier après la connexion

Le multiset contient désormais le nombre de chaque caractère dans le chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!