我对一个简单的控制台应用程序有一点问题,我想检测用户是否输入了格式正确的数值。 也就是说,不接受诸如1212sss之类的值或诸如asjkq12323或单个字符之类的值。我想只接受纯整数值。
这是我试过的
bool detectNumber(string s)
{
int value=0;
Int.TryParse(s,out value);
return (value!=0)?true:false;
}
我感谢任何帮助。谢谢soooo多,,,,,
答案 0 :(得分:2)
int value = 0;
bool ok = int.TryParse(s, out value);
return ok;
答案 1 :(得分:1)
string line = Console.ReadLine();
int value;
if (int.TryParse(line, out value))
{
Console.WriteLine("Integer here!");
}
else
{
Console.WriteLine("Not an integer!");
}
答案 2 :(得分:1)
有几种方法可以只测试数字:
首先,永远不要使用Int
,因为它是最大值,使用int
或Int32
。
int result;
if (int.TryParse("123", out result))
{
Debug.WriteLine("Valid integer: " + result);
}
else
{
Debug.WriteLine("Not a valid integer");
}
// throws ArgumentNullExceptionint
result1 = Int32.Parse(null);
// doesn't throw an exception, returns 0
int result2 = Convert.ToInt32(null);
using Microsoft.VisualBasic;
// ......
bool result = Information.IsNumeric("123");
string strToTest = "123";
Regex reNum = new Regex(@"^\d+$");
bool isNumeric = reNum.Match(strToTest).Success;
答案 3 :(得分:0)
你的代码工作正常,你只能稍微重构一下。以下代码较短但完全相同:
static bool IsInt32(string s)
{
int value;
return Int32.TryParse(s, out value);
}