Verwenden von string-Methoden zum finden und zählen von vokalen in einer Zeichenkette?
Habe ich dieses problem bei den Hausaufgaben (ich bin ehrlich, nicht zu verbergen versucht es zumindest)
Und ich habe Probleme, herauszufinden, wie es zu tun.
Gegeben, folgende Erklärungen ab : String Satz = " WazzUp ? - Wer ist Auf ZUERST ??? - IDUNNO"; Schreiben, um den notwendigen code
die Anzahl der Vokale im string und drucken Sie die entsprechende Meldung auf dem Bildschirm.
Hier der code, den ich bisher:
String phrase = " WazzUp ? - Who's On FIRST ??? - IDUNNO";
int i, length, vowels = 0;
String j;
length = phrase.length();
for (i = 0; i < length; i++)
{
j = phrase.substring(i, i++);
System.out.println(j);
if (j.equalsIgnoreCase("a") == true)
vowels++;
else if (j.equalsIgnoreCase("e") == true)
vowels++;
else if (j.equalsIgnoreCase("i") == true)
vowels++;
else if (j.equalsIgnoreCase("o") == true)
vowels++;
else if (j.equalsIgnoreCase("u") == true)
vowels++;
}
System.out.println("Number of vowels: " + vowels);
Jedoch wenn ich es starten macht es nur ein Haufen von leeren Zeilen. Kann mir jemand helfen?
String.charAt()
wäre einfacher alsString.substring()
in diesem Fall.- Scheint wie eine switch-Anweisung umgesetzt werden könnten.
- anstelle des Schalters ist es besser, erstellen Sie eine Liste der Vokale und dann prüfen, ob Liste.enthält(j)
Du musst angemeldet sein, um einen Kommentar abzugeben.
phrase.substring(i, i++);
solltephrase.substring(i, i + 1);
.i++
gibt den Wert deri
und fügt dann 1 bis es. Wie haben Sie es gleich jetztString j
ist effektivphrase.substring(i, i);
, das ist immer der leere string.Brauchen Sie nicht zu ändern Sie den Wert von
i
im Körper desfor
Schleife da ist es schon erhöht, infor (i = 0; i < length; i++)
.Sehe ich nicht die Notwendigkeit einer print-Anweisung in der Schleife.
Dieser wandelt den string in Kleinbuchstaben um, und prüft, ob alle Zeichen in der Zeichenfolge für die Vokale.
.toLowercase()
ist falsch, es sollte.toLowerCase()
Diese könnte/sollte ein one-liner
und seine String nur Methoden
Verbesserung auf eine obige Antwort zu überlegen Vokale in Großbuchstaben:
I++ inkrementiert den ich nach ist verwendet worden, Sie sind also im wesentlichen sagen, string.substring(i,i). Da die Ende-Marke ist exklusiv, das wird immer ein leerer string zurück. Eine einfache Lösung wäre, nur ändern Sie es zu
Hoffe, das hilft!
Verwenden Von Sammlungen:
}
Ich weiß, das ist eine alte Bearbeiten ,
aber ich denke, es ist besser, wenn Sie verwenden und das array für die Vokale :
Zu zählt die Anzahl der Vokale in einem String:
public class JavaApplication2 {