Wie ist die Zeile, wenn ich in C# nach Buchstaben in einem String suchen will und...

... komplette Frage anzeigen

4 Antworten

Hier wäre ein Array wahrscheinlich am schnellsten.

Du deklarierst einen String indem alle Buchstaben vorhanden sind, die du suchen möchest.

string _search = "QWETZUIOPÜÄÖLKJHGFDSAYXCVBNM";

Nun benötigst du die Abfrage mit

 .IndexOf(_search, 1);

Das sollte dir als Ansatz reichen.

Wenn nicht, dann kannst du noch einmal fragen ;)

Freundliche Grüße

robert1234542X

Antwort bewerten Vielen Dank für Deine Bewertung

z.B.

string hallo = "92929sffsdfsdfsdfsdf";
var g = new string(hallo.Where(p => char.IsLetter(p)).ToArray());

Kleinen Schönheitsfehler hat es allerdings. Wenn "hallo" nur Ziffern enthält, dann hat die Variable 'g' den Inhalt = String.Empty (und nicht null, was eindeutiger wäre).

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Michael339
10.06.2014, 18:46

bzw. Deine Anfrage lautete ja anders, daher müsste der Code lauten:

var g = new string(hallo.Where(p => !char.IsNumber(p)).ToArray());

Und dann halt if (g!=String.Empty) ... Variable enthielt nicht nur Ziffern.

0

Am besten löst Du das über das KeyPress-Event der Box... könnte so aussehen. Dann kannst Du andere Sachen gar nicht erst eingeben.

    private void textBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)13)
        {
            // Enter gedrückt
            e.Handled = true;
        }
        else
        {
            e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
        }
    }
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Ekalz
10.06.2014, 16:43

Mhhh, ich kann damit leider nicht soo viel anfangen. Ich verstehe was du meinst, aber ich habe 2 Buttons die jeweils vorher die Strings 2er Textboxen fressen und dann verarbeiten. Zwischen dem Klicken und dem Verarbeiten soll es geprüft werden.

Was sind e.Handled und e.KeyChar in diesem Fall?

0

Versuchen kannst Du auch sowas:

var match = Regex.Match(searchString, @"[0-9]*");
if (!match.Success) 
{
...
}
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Ekalz
10.06.2014, 16:51

Wow, das 1. was beim 1. Versuch geklappt hat. Danke ! Und natürlich auch danke an die anderen :)

1
Kommentar von Toraka
11.06.2014, 16:57

Was passiert mit einem Leerstring oder Null? Das würde die Bedingung ebenfalls erfüllen und muss behandelt werden. Sollen nicht alle Zeichen, die nicht nummerisch sind, in einer Nachricht angezeigt werden?

0

Was möchtest Du wissen?