我想知道在C#中如何检查一个字符串是否为数字(且只为数字)。
示例:
示例:
141241 Yes
232a23 No
12412a No
有特定的函数吗?141241 Yes
232a23 No
12412a No
有特定的函数吗?如果你需要处理像 1
, -2
, 和 3.14159
这样的数字,请查看 double.TryParse()
。有些人建议使用 int.TryParse()
,但是这个方法在处理小数时会失败。
string candidate = "3.14159";
if (double.TryParse(candidate, out var parsedNumber))
{
// parsedNumber is a valid number!
}
编辑:正如Lukasz在下面指出的那样,当解析带有十进制分隔符的数字时,我们应该注意线程文化。即,为了安全起见,请执行以下操作:
double.TryParse(candidate, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out var parsedNumber)
如果您只想检查字符串是否全部为数字(而不是位于特定数字范围内),可以使用以下方式:
string test = "123";
bool allDigits = test.All(char.IsDigit);
"".All(Char.IsDigit)
(它将返回 true
)。您需要改为使用 test.Any() && test.All(Char.IsDigit)
。 - Pluto有的
int temp;
int.TryParse("141241", out temp) = true
int.TryParse("232a23", out temp) = false
int.TryParse("12412a", out temp) = false
希望这能帮到你。
Int32.TryParse()
。int num;
bool isNum = Int32.TryParse("[string to test]", out num);
if (isNum)
{
//Is a Number
}
else
{
//Not a number
}
是的 - 你可以在C#中使用Visual Basic的方法。这都属于.NET;VB函数IsNumeric、IsDate等实际上是Information类的静态方法。所以以下是你的代码:
using Microsoft.VisualBasic;
...
Information.IsNumeric( object );
IsNumeric
本质上是 double.TryParse
的包装器。 - James McCormackIsNumeric
函数将返回true,但double.TryParse
函数将返回false。 - Joshua Honig使用int.TryParse()
:
string input = "141241";
int ouput;
bool result = int.TryParse(input, out output);
如果结果是 true
,则它会被返回。
int value;
if (int.TryParse("your string", out value))
{
Console.WriteLine(value);
}
这是我个人最喜欢的内容
private static bool IsItOnlyNumbers(string searchString)
{
return !String.IsNullOrEmpty(searchString) && searchString.All(char.IsDigit);
}
int.TryParse
函数。
http://msdn.microsoft.com/zh-cn/library/system.int32.tryparse.aspx
http://msdn.microsoft.com/en-us/library/system.int32.tryparse.aspx
http://msdn.microsoft.com/en-us/library/system.decimal.tryparse.aspx
1.2
е’Ң1,2
йғҪеҗҲжі•иҝҳжҳҜдёҚеҗҲжі•пјҹ1e3
е‘ўпјҹ-2
е‘ўпјҹ88888888888888888888888888888888888888888888888888888888888888888888
е‘ўпјҹ - Lasse V. Karlsen