Wie kann ich überprüfen, ob meine Eingabe eine bestimmte Zeichenfolge ist? Also kein numerisches, kein "/", ...Inhalt der Zeichenfolgeneingabe prüfen
Antwort
Nun, zu prüfen, ob eine Eingabe tatsächlich ein Objekt vom Typ ist System.String
, können Sie einfach tun:
bool IsString(object value)
{
return value is string;
}
Um zu überprüfen, dass ein string
nur Buchstaben enthält, können Sie etwas tun könnte:
bool IsAllAlphabetic(string value)
{
foreach (char c in value)
{
if (!char.IsLetter(c))
return false;
}
return true;
}
Wenn Sie diese kombinieren möchten, können Sie dies tun:
bool IsAlphabeticString(object value)
{
string str = value as string;
return str != null && IsAllAlphabetic(str);
}
Gutes Beispiel für beides, da der Titel und die Frage nicht genau übereinstimmen. – corsiKa
Es ist nicht ganz klar, was Sie wollen, aber Sie können es wahrscheinlich mit einem regulären Ausdruck tun. Zum Beispiel prüfen, ob die Zeichenfolge nur Buchstaben in az oder AZ enthalten, dies zu tun:
string s = "dasglakgsklg";
if (Regex.IsMatch(s, "^[a-z]+$", RegexOptions.IgnoreCase))
{
Console.WriteLine("Only letters in a-z.");
}
else
{
// Not only letters in a-z.
}
Wenn Sie wollen auch Räume erlauben, Unterstreichen oder andere Zeichen sie einfach zwischen den eckigen Klammern im regulären Ausdruck hinzufügen . Beachten Sie, dass einige Zeichen in regulären Ausdrucksklassen eine spezielle Bedeutung haben und mit einem umgekehrten Schrägstrich versehen werden müssen.
Sie können auch \p{L}
anstelle von [a-z]
verwenden, um alle Unicode-Zeichen zu finden, die als Buchstaben gelten, einschließlich Buchstaben in fremden Alphabeten.
So etwas (nicht getestet) kann zu Ihrer (vagen) Anforderung passen.
if (input is string)
{
// test for legal characters?
string pattern = "^[A-Za-z]+$";
if (Regex.IsMatch(input, pattern))
{
// legal string? do something
}
// or
if (input.Any(c => !char.IsLetter(c)))
{
// NOT legal string
}
}
using System.Linq;
...
bool onlyAlphas = s.All(c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
+1 für nicht mit regex! – Aren
-1 für brutal sein – Luiscencio
Versteh mich nicht falsch: regex hat seine Verwendungen. Aber für einen einfachen Single-Pass-Algorithmus wie diesen ist es Overkill. Ich mag Reeds Antwort jedoch mehr. Wusste nicht über 'Char.IsLetter'. – StriplingWarrior
Wenn Sie meinen, "die Zeichenfolge vollständig Buchstaben ist", könnten Sie tun:
string myString = "RandomStringOfLetters";
bool allLetters = myString.All(c => Char.IsLetter(c));
Dies beruht auf LINQ und die Char.IsLetter Methode.
das ist cool =) – Luiscencio
Wie funktioniert Char.IsLetter mit Lokalisierung? – ahsteele
@ahsteele: Es tatsächlich System.Globalization.CharUnicodeInfo, um dies für nicht lateinische Zeichen zu behandeln. –
- 1. USB-Inhalt prüfen
- 2. Standardwert für die Zeichenfolgeneingabe festlegen
- 3. Prüfen, ob der Inhalt bereits in PHP gesendet wurde
- 4. Zip-Datei Inhalt prüfen und extrahieren
- 5. Zellen auf Inhalt prüfen und Systemzeit eingeben
- 6. Parkett von der Befehlszeile aus prüfen
- 7. Signatur der iOS-App prüfen
- 8. Prüfen, ob der Dienst existiert
- 9. Prüfen, ob die Binärdatei mindestens den Inhalt der zweiten Datei enthält
- 10. prüfen, ob der Inhalt in iFrame angezeigt werden kann funktioniert nicht
- 11. Prüfen automatisch
- 12. Eingabewertlänge prüfen
- 13. Prüfen, ob der Druck erfolgreich ausgeführt wurde
- 14. prüfen Boxlist Auswahl aus der Datenbank
- 15. Java prüfen, ob der Parameter Vokale enthält
- 16. Wie "Element prüfen" in der Bildlaufleiste?
- 17. Prüfen, ob der Datepicker geöffnet ist
- 18. Prüfen, ob der Prozess noch läuft?
- 19. prüfen dezimal und Gesamtlänge der Anzahl
- 20. Android - auf Verlust der Bluetooth-Verbindung prüfen?
- 21. Prüfen, wann der Sound fertig ist C#
- 22. So prüfen Sie die Genauigkeit der Float
- 23. .dieser Inhalt der Funktion
- 24. Inhalt der Webseite zentrieren
- 25. Inhalt der ValidateUser-Methode
- 26. Inhalt der Drupal-Seite
- 27. Inhalt der Textdatei löschen
- 28. Inhalt der untergeordneten Seite
- 29. prüfen Fehler im Frühjahr JSP
- 30. Prüfen, ob Chargenvariable mit "..." beginnt
D o meinst du vielleicht alphabetisch (nur Buchstaben) statt String? – BoltClock
Meinst du, "Wie kann ich überprüfen, ob eine Zeichenfolge nur Zeichen enthält?" –
Meinst du eine Zeichenfolge, die nur aus alphanumerischen Zeichen besteht? Kannst du welche Charaktere genau definieren? –