Compter les occurrences d'une lettre dans une chaîne de caractères
Je suis en train d'écrire une boucle for en Java qui va compter les occurrences d'une lettre dans une chaîne de caractères. L'utilisateur va entrer dans la lettre pour le comte et la chaîne de caractères à rechercher. C'est un très le code de base, et nous n'avons pas obtenu de tableaux ou d'autre chose encore. (Je me rends compte que j'ai déclaré lettre deux fois, mais mon cerveau est mort en ce moment) c'est Ce que j'ai essayé jusqu'à présent et vais avoir des ennuis avec, toute aide est très appréciée:
Ok j'ai changé mon code par des suggestions, mais maintenant, il est seulement de lire le premier mot de ma phrase?
import java.util.Scanner;
public class CountCharacters {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char letter;
String sentence = "";
System.out.println("Enter a character for which to search");
letter = in.next().charAt(0);
System.out.println("Enter the string to search");
sentence = in.next();
int count = 0;
for (int i = 0; i < sentence.length(); i++) {
char ch = sentence.charAt(i);
if (ch == letter) {
count++;
}
}
System.out.printf("There are %d occurrences of %s in %s", count,
letter, sentence);
}
}
Depuis votre code ne compile pas, comment savez-vous cela ne fonctionne pas? Ce n'est pas, mais avez-vous vraiment essayé? Si vous avez, alors expliquer quel est le problème (en plus de la déclaration en double).
OriginalL'auteur user2918429 | 2013-10-25
Vous devez vous connecter pour publier un commentaire.
Je vois un couple de questions. D'abord, vous avez deux variables avec le même nom.
Seconde votre
if
condition de vérifier pour la durée de la peine à être supérieure à 0 au lieu de vérifier le caractère d'égalité.Je voudrais aussi vous suggère fortement de valider l'entrée (ce qui n'est pas fait dans l'exemple ci-dessus) au lieu de simplement en supposant que vous avez obtenu 1 caractères à partir de la première entrée et 1 phrase du second.
OriginalL'auteur Francis
Votre
if (sentence.length() <= 0) {
n'est pas droit. Changer votre condition comme:OriginalL'auteur Masudul
Au-dessus de la partie de code dans votre programme qui est faux. Ce ne sera jamais vrai jusqu'à ce que sinon vous saisissez une chaîne vide.
Et, fondamentalement, ce n'est pas la bonne logique. Vous aurez à utiliser la comparaison directe.
OriginalL'auteur Karuppiah Subramaniyam
Pas besoin de boucle:
De SORTIE:
OriginalL'auteur alfasin
Essayer cette
oublier
String letter = ""
<-- Deleteoubliez
letter = in.next()
<-- DeleteOriginalL'auteur Paul Samsotha
Essayez ceci:
ops! il fixe..
OriginalL'auteur Nizam
Exemple--->
OriginalL'auteur MouseLearnJava
Espère que ce sera utile pour vous.
Échantillon D'Entrée Et De Sortie:
OriginalL'auteur Anto Robinson
essayer la méthode indexOf ().
il devrait fonctionner
OriginalL'auteur Ameya Jadhav
votre Scanner de classe ne s'est pas déplacé à la ligne suivante après la lecture du caractère
ajouter un autre.nextLine() avant la lecture de la chaîne d'entrée
vieux thread, mais espérons que cela aide 🙂
OriginalL'auteur Learnaholic