Wie kann ich überprüfen ob ein char ist ein Vokal?
Dieser Java-code ist, gebe mir Mühe:
String word = <Uses an input>
int y = 3;
char z;
do {
z = word.charAt(y);
if (z!='a' || z!='e' || z!='i' || z!='o' || z!='u')) {
for (int i = 0; i==y; i++) {
wordT = wordT + word.charAt(i);
} break;
}
} while(true);
Möchte ich prüfen, ob der Dritte Buchstabe des Wortes ist ein nicht-Vokal, und wenn es ist, ich will wieder den non-Vokal-und alle Zeichen, die es vor. Wenn es ein Vokal ist, prüft es den nächsten Buchstaben in der Zeichenfolge, wenn es auch ein Vokal, dann prüft es das nächste, bis es findet ein non-Vokal.
Beispiel:
Wort = Jaemeas dann wordT muss = Jaem
Beispiel 2:
Wort=Jaeoimus dann wordT muss =Jaeoim
Das problem ist mit meinem if
Aussage, habe ich nicht herausfinden können, wie man es überprüfen Sie alle Vokale in einer Zeile.
z!='a'||z!='e'...
wird immer scheitern. z
nicht gleich a
und e
(und so weiter) in der gleichen Zeit. Versuchen &&
statt.Ich wollte die wenn, um zu überprüfen, dass es nicht 'a' 'e' 'i' 'o' 'u', wie kann ich die Struktur, die if-Anweisung?
Es ist dies ein. Aber Sie gesehen, UND.
Vergessen Sie nicht
y
Vokal ! Und ich bin ein bisschen verwirrt über Ihre if
Bedingung : jeder Brief ist differeent von a
ODER e
etc... Verwenden AND
Betreiber stattBitte keine Antwort auf Ihre Frage, indem man es bearbeitet. Wenn Sie eine Lösung gefunden haben, poste es als Antwort auf Ihre eigene Frage.
InformationsquelleAutor KyleMHB | 2013-10-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Bedingung ist fehlerhaft. Denken Sie über die einfachere version
Wenn
z
ist'a'
dann die zweite Hälfte wird richtig, daz
ist nicht'e'
(d.h. die ganze Bedingung wahr ist), und wennz
ist'e'
dann die erste Hälfte wahr sein wird, daz
ist nicht'a'
(wieder ganze Bedingung wahr ist). Natürlich, wennz
ist weder'a'
noch'e'
dann beide Teile werden wahr. In anderen Worten, Ihr Zustand wird nie falsch sein!Werden Sie wahrscheinlich wollen
&&
s dort statt:Oder vielleicht:
Kein problem, vergessen Sie nicht akzeptieren Sie eine Antwort.
Fertig! Verwendet wird die indexOf () - Funktion und es ist viel sauberer.
Von Ihnen positiv bewertet werden für die Verwendung
indexOf()
die so flexibler für andere Verwendungen.InformationsquelleAutor arshajii
Saubere Methode zu überprüfen, für die Vokale:
InformationsquelleAutor Silviu Burcea
Wie wäre es mit einem Ansatz mit regulären Ausdrücken? Wenn Sie mit dem richtigen Muster können Sie erhalten die Ergebnisse, die von der Matcher-Objekt mit Gruppen. Im code-Beispiel unten der Aufruf von m ist.Gruppe(1) zurückkehren sollte Sie die Zeichenfolge, die Sie suchen, solange es ein Muster übereinstimmen.
Nur ein wenig anders Vorgehen, welches das gleiche Ziel.
InformationsquelleAutor jmtrachy
Für den Anfang, Sie werden überprüft, wenn der Brief ist "nicht a" ODER "e" ODER "nicht ich" usw.
Können sagen, dass der Brief ich. Dann ist der Brief nicht ein, so dass gibt "True" zurück. Dann ist die gesamte Aussage Wahr ist, weil ich != ein. Ich denke was du suchst ist UND die Aussagen zusammen, ODER nicht.
Sobald Sie dies tun, werden Sie brauchen, um zu schauen, wie das Inkrementieren y, und überprüfen Sie diese erneut. Wenn das erste mal, wenn Sie einen Vokal, den Sie möchten, um zu sehen, ob das nächste Zeichen ein Vokal, oder nicht. Diese überprüft nur das Zeichen an der Position y=3.
InformationsquelleAutor Drifter64
Eigentlich gibt es viel effizientere Wege, es zu überprüfen, aber da Sie gefragt haben, was ist das problem mit dir, ich kann sagen, dass das problem ist, Sie zu ändern ODER Betreibern UND Betreibern. Mit deiner if-Anweisung, es wird immer wahr sein.
InformationsquelleAutor Mehmet Sedat Güngör
hier ist meine Antwort.
InformationsquelleAutor user2838970
Habe ich erklärt, ein char [] - Konstanten für die VOKALE, dann implementiert eine Methode, die überprüft, ob ein char ist ein Vokal ist oder nicht (ein boolescher Wert zurückgegeben wird). In meiner main-Methode, die ich bin Deklaration einer Zeichenkette und wandelt Sie in ein array von chars, so dass ich übergeben Sie den index des char-array als parameter meiner isVowel Methode:
InformationsquelleAutor paranza