Im Moment überprüfen Sie, ob der Satz als Ganzes contains
irgendwelche Vokale, einmal für jedes Zeichen. Sie müssen stattdessen die einzelnen Zeichen überprüfen.
Davon abgesehen, können Sie das ein wenig vereinfachen:
%Vor%Sie können es weiter vereinfachen, wenn Sie LINQ verwenden möchten:
%Vor%Da Reed Ihre Frage beantwortet hat, werde ich Ihnen eine andere Möglichkeit anbieten, dies zu implementieren. Sie können Ihre Schleife eliminieren, indem Sie LINQ- und Lambda-Ausdrücke verwenden:
%Vor%Wenn Sie diesen Code nicht verstehen, sollten Sie LINQ und Lambda Expressions in C # nachschlagen. Es gibt viele Instanzen, in denen Sie Ihren Code übersichtlich gestalten können, indem Sie Schleifen auf diese Weise eliminieren.
Im Wesentlichen sagt dieser Code "zähle jedes Zeichen in dem Satz, der in der Zeichenfolge" aeiou "enthalten ist."
Sie haben überprüft, ob Ihr gesamter Satz Vokale für jede Iteration Ihrer Schleife enthält, weshalb Ihr Gesamtwert einfach die Anzahl der Zeichen in Ihrer Satzzeichenfolge war.
%Vor%Besser noch einen regulären Ausdruck verwenden. bearbeiten Sie möchten nur eine Regex für etwas komplizierter als passende Vokale verwenden.
%Vor%BEARBEITEN Nur der Vollständigkeit halber die schnellste / effizienteste Lösung (wenn Sie dies bei einer ~ Millionen Strings tun). Wenn die Leistung keine Rolle spielte, würde ich Linq für seine Kürze verwenden.
%Vor%Vielleicht zu fortgeschritten für einen Starter, aber so geht das in C #:
%Vor%Es gibt viele Möglichkeiten, eine Katze zu häuten :-) Bei der Programmierung kann etwas Querdenken hilfreich sein ...
%Vor%Sie könnten zum Beispiel versuchen, einen Vokal aus dem Satz zu entfernen und zu prüfen, ob der Satz ohne den Vokal kleiner ist und um wie viel.
TMTOWTDI (Tim Toadie, wie sie sagen: Es gibt mehr als eine Möglichkeit, es zu tun).
Wie wäre es mit
? %Vor%Oder (ein anderer Ansatz für reguläre Ausdrücke)
%Vor%Das Einfachste ist wahrscheinlich auch das Schnellste:
%Vor%Dies ist eine nette allgemeine Art, Vokale zu zählen und von hier aus können Sie alle möglichen Dinge tun. Zähle die Vokale, gebe eine sortierte Liste zurück usw.
%Vor%Anwendung zum Zählen von Vokalen und Konsonanten in einem Satz. Dies ist eine andere Lösung mit weniger Codezeilen, die die Idee der Verwendung von Schleifen und verschachtelten Schleifen mit char-Arrays versteht.
Eine Anwendungsschnittstelle mit Kontrollnamen:
%Vor%
Tags und Links c# loops console-application