Wenn ich diese Saiten habe:
-
"abc"
=false
-
"123"
=true
-
"ab2"
=false
Gibt es einen Befehl, wie IsNumeric()
oder etwas anderes, das erkennen kann, ob eine Zeichenkette eine gültige Zahl ist?
Wenn ich diese Saiten habe:
"abc"
= false
"123"
= true
"ab2"
= false
Gibt es einen Befehl, wie IsNumeric()
oder etwas anderes, das erkennen kann, ob eine Zeichenkette eine gültige Zahl ist?
Die beste flexible Lösung mit der in .net integrierten Funktion called- char.IsDigit
. Es funktioniert mit unbegrenzt langen Zahlen. Es gibt nur true zurück, wenn jedes Zeichen eine numerische Zahl ist. Ich habe es viele Male ohne Probleme verwendet und es ist die einfachste und sauberste Lösung, die ich je gefunden habe. Ich habe eine Beispielmethode erstellt, die sofort einsatzbereit ist. Zusätzlich habe ich eine Validierung für null und leere Eingaben hinzugefügt. So ist die Methode jetzt völlig kugelsicher
public static bool IsNumeric(string strNumber)
{
if (string.IsNullOrEmpty(strNumber))
{
return false;
}
else
{
int numberOfChar = strNumber.Count();
if (numberOfChar > 0)
{
bool r = strNumber.All(char.IsDigit);
return r;
}
else
{
return false;
}
}
}
Regex rx = new Regex(@"^([1-9]\d*(\.)\d*|0?(\.)\d*[1-9]\d*|[1-9]\d*)$");
string text = "12.0";
var result = rx.IsMatch(text);
Console.WriteLine(result);
Prüfen, ob String uint, ulong ist oder nur Ziffern enthält, ein .(Punkt) und Ziffern Beispieleingaben
123 => True
123.1 => True
0.123 => True
.123 => True
0.2 => True
3452.434.43=> False
2342f43.34 => False
svasad.324 => False
3215.afa => False
Verwenden Sie diese Erweiterungsmethoden, um klar zu unterscheiden zwischen einer Prüfung, ob die Zeichenkette Numerisch und wenn die Zeichenfolge nur enthält 0-9 Ziffern
public static class ExtensionMethods
{
/// <summary>
/// Returns true if string could represent a valid number, including decimals and local culture symbols
/// </summary>
public static bool IsNumeric(this string s)
{
decimal d;
return decimal.TryParse(s, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.CurrentCulture, out d);
}
/// <summary>
/// Returns true only if string is wholy comprised of numerical digits
/// </summary>
public static bool IsNumbersOnly(this string s)
{
if (s == null || s == string.Empty)
return false;
foreach (char c in s)
{
if (c < '0' || c > '9') // Avoid using .IsDigit or .IsNumeric as they will return true for other characters
return false;
}
return true;
}
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.