C # Zähle Vokale

7

Ich lerne C # programmieren und versuche die Vokale zu zählen. Ich bekomme das Programm, um den Satz zu durchlaufen, aber anstatt die Anzahl der Vokale zurückzugeben, gibt es nur die Länge der Zeichenfolge zurück. Jede Hilfe würde sehr geschätzt werden.

%Vor%     
Phorden 07.08.2013, 17:27
quelle

15 Antworten

25

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.

%Vor%

Davon abgesehen, können Sie das ein wenig vereinfachen:

%Vor%

Sie können es weiter vereinfachen, wenn Sie LINQ verwenden möchten:

%Vor%     
Reed Copsey 07.08.2013, 17:29
quelle
3

Das liegt daran, dass Ihre if-Anweisung immer wahr ist, Sie müssen das Zeichen in Satz [i] vergleichen und sehen, ob es ein Vokal ist, anstatt zu sehen, ob der Satz einen Vokal enthält.

    
CBredlow 07.08.2013 17:29
quelle
3

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."

    
fatsmcgee 07.08.2013 17:35
quelle
2

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%     
Louis Ricci 07.08.2013 17:33
quelle
1

Oder mit linq.

%Vor%     
Tyler 07.08.2013 17:30
quelle
1
%Vor%     
Curt 07.08.2013 17:31
quelle
0

Vielleicht zu fortgeschritten für einen Starter, aber so geht das in C #:

%Vor%     
Federico Berasategui 07.08.2013 17:32
quelle
0

So würde ich damit umgehen.

%Vor%     
Antarr Byrd 07.08.2013 17:33
quelle
0

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.

    
xanatos 07.08.2013 17:43
quelle
0

Sie können dies auch mit der switch-Anweisung tun

%Vor%     
Chris 07.08.2013 18:30
quelle
0

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%     
Nicholas Carey 07.08.2013 18:33
quelle
0

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%     
castaway2000 08.06.2014 18:20
quelle
0
%Vor%     
Jacob Hernandez 08.03.2016 13:07
quelle
0

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%     
Fadi Alzoubi 05.11.2016 18:57
quelle
-1
%Vor%     
bilal 14.06.2015 12:02
quelle

Tags und Links