Tôt ou tard, quelque chose doit tourner en boucle. Il est beaucoup plus simple pour vous d'écrire la boucle (très simple) que d'utiliser quelque chose comme split
ce qui est beaucoup plus puissant que ce dont vous avez besoin.
Par tous les moyens, encapsulez la boucle dans une méthode distincte, par ex.
public static int countOccurrences(String haystack, char needle)
{
int count = 0;
for (int i=0; i < haystack.length(); i++)
{
if (haystack.charAt(i) == needle)
{
count++;
}
}
return count;
}
Vous n'avez donc pas besoin d'avoir la boucle dans votre code principal - mais la boucle doit être présente quelque part.
1 votes
Des devoirs ? Parce que sinon je ne vois pas l'obligation d'éviter la boucle.
26 votes
Je ne suis pas contre une boucle, je cherche plutôt une phrase idiomatique.
2 votes
Les boucles ont été faites pour un problème comme celui-ci, écrivez la boucle dans une classe d'utilité commune puis appelez votre one liner tout frais.
0 votes
Question similaire pour les cordes : stackoverflow.com/questions/767759/
0 votes
Juste une remarque : j'apprécie de trouver les phrases en une seule ligne, c'est amusant et (c'est un véritable avantage) souvent facile à retenir, mais j'aimerais souligner qu'une méthode séparée et une boucle sont meilleures à presque tous les égards : lisibilité et même performances. La plupart des solutions "élégantes" ci-dessous ne vont pas être très performantes parce qu'elles impliquent de reformer des chaînes de caractères/copier de la mémoire, alors qu'une boucle qui se contente de scanner la chaîne de caractères et de compter les occurrences serait rapide et simple. Non pas que les performances doivent généralement être un facteur, mais ne regardez pas une ligne par rapport à une boucle en supposant qu'elle sera plus performante.
0 votes
Duplicata possible de Recherche d'occurrences de caractères dans une chaîne Java
0 votes
@thSoft À l'avenir, veuillez choisir les questions/réponses les plus votées comme cible des doublons.