C# Wörter in einer Textbox zählen?

...komplette Frage anzeigen

2 Antworten

Versuch's mal so. Die erste Zeile hat den Sinn, erstmal alle Zeilenumbrüche durch Whitespace zu ersetzen. Die zweite Zeile teilt den Text an jedem Leerzeichen auf. Die dritte Zeile gibt die Anzahl der Elemente im Array zurück. Ein bisschen musst du aber noch an den Code ran: Was ist z.B. bei zwei oder mehr Leerzeichen nacheinander? Am besten nochmal mit ner while-Schleife oder so, so lange "  " (= zwei aufeinanderfolgende Leerzeichen) durch " "(= einzelnes Leerzeichen) ersetzen, bis keine zwei aufeinanderfolgenden Leerzeichen mehr gefunden werden.

private int countWords(){
var words = this.textBox1.Text.Replace(Environment.NewLine," ");
var countArray = words.Split(' ');
return countArray.Length;
}

Wieso kommst du denn nicht zum korrekten Ergebnis? Wie sieht dein Code bisher aus? Wie sollen wir dir helfen, ohne das zu wissen??

Das ist die Click-Methode des Buttons:



private void bnAnzahlWoerter_Click(object sender, EventArgs e)
{
int iAnzahlWörter = 0;

//Speichern der einzelnen Zeilen in der Variablen sLine
for (int i = 0; i < tbEingabe.Lines[i].Length; i++)
{
string sLine = tbEingabe.Lines[i];
char cZeichen;

for (int j = 0; j < sLine.Length; j++)
{
cZeichen = sLine[j];

if (char.IsWhiteSpace(cZeichen))
{
iAnzahlWörter++;
}
}


}
tbAnzahlWoerter.Text = iAnzahlWörter.ToString();
}
0
@Tedd0n

Und was is der Fehler? Wird zu viel / zu wenig gezählt? Haste mal mit dem Debugger geschaut, wo denn falsch gezählt wird?

0

Was möchtest Du wissen?