boolean isA2Z(String str) {

        return (str.chars().filter(i -> i >= 'a' && i <= 'z').distinct().count() == 26);
    }

D'après le nom de la méthode, il semble qu'il teste si une chaîne contient des lettres de a-> z, mais cela ne semble pas correct?

Il collecte les caractères individuels de la chaîne, puis renvoie le décompte du flux. Comment cela peut-il fonctionner?

-3
user697911 4 août 2017 à 02:48

2 réponses

Disons si la chaîne suit

"abbcdefghijklmnopqrstuvwxyz"

Cette méthode retournera true. La méthode vérifie si la chaîne contient tous les alphabets de a à z, qu'ils se répètent ou non.

0
Adeel 3 août 2017 à 23:53

Voici comment cela fonctionne, étape par étape:

  1. Convertir la chaîne en liste de caractères individuels
  2. Exclure tous les caractères non compris entre «a» et «z» (inclus)
  3. Créez une liste unique des personnages restants
  4. Comptez le nombre de caractères uniques
  5. Renvoie vrai si le nombre est 26; retourner faux sinon

En d'autres termes, la méthode renvoie true si et seulement si la chaîne d'entrée contient au moins une occurrence de chaque lettre minuscule de a à z.

1
Kirby 3 août 2017 à 23:56