C#中检查输入的是否是数字

tianxiaocui2007 2009-04-13 02:45:10
C#中创建一个控制台应用程序,怎么检查输入的是否是数字?
...全文
1254 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxiaocui2007 2009-04-14
  • 打赏
  • 举报
回复
给分了,分不多,请见谅。
asasday 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 Ricercar 的回复:]
幸好你们不是我的手下,用try/catch的统统面壁去
[/Quote]
我用try/catch的话铁定被老师骂死
蔡袅 2009-04-13
  • 打赏
  • 举报
回复
最好的是这样的:

int input=0;
object dd=Console.ReadLine();
if(int.Parae(dd.ToString(),out intput)) //如果这里为true的话就是out(将你输入的dd 转化为input整数输出)这时候就可以直接调用了
{
Console.WriteLine("您输入的整数是{0}",intput);
}
else
{
Console.WriteLine("您输入的不是整数");

}
龙宜坡 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wackyboy 的回复:]

string input = Console.ReadLine();
bool IsNum = Regex.IsMatch(input,@"^\d+$");

[/Quote]

就这了,最方便的

Int64.TryParse也可!
zhu4139365 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wackyboy 的回复:]
C# code
string input = Console.ReadLine();
bool IsNum = Regex.IsMatch(input,@"^\d+$");
[/Quote]
zhu4139365 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 Ricercar 的回复:]
幸好你们不是我的手下,用try/catch的统统面壁去[/Quote]
lsd123 2009-04-13
  • 打赏
  • 举报
回复
.
keke453042926 2009-04-13
  • 打赏
  • 举报
回复
将接受的字符串转换成Char数组,然后判断数组中的每个字符是不是整数
Ricercar 2009-04-13
  • 打赏
  • 举报
回复
幸好你们不是我的手下,用try/catch的统统面壁去
benyouyong 2009-04-13
  • 打赏
  • 举报
回复
try
{
firstNumber=Convert.ToDouble(Console.ReadLine ());
double.parse(firstNumber);
//firstNumber是数字 如果是整数用Int.parse();
}
catch {
// 不是整数
}
zx_lxq 2009-04-13
  • 打赏
  • 举报
回复
发现了这么多的验证方法,还是最喜欢正则表达式的
Ricercar 2009-04-13
  • 打赏
  • 举报
回复
用try/catch不是好方法
Terran5 2009-04-13
  • 打赏
  • 举报
回复
我是用正则表达式
测试过没问题的

/// <summary>
/// 是否是数字并且是否有小数
/// </summary>
/// <param name="strNum"></param>
/// <param name="intNumLength"></param>
/// <returns></returns>
public static bool NumIsNotDouble(string strNum, int intNumLength)
{
string strYlib;
strYlib = @"^\s*(\d{";

for (int i = 1; i < intNumLength; i++)
{
strYlib += i + @"}|(\d{";
}

strYlib += intNumLength + "}";
for (int i = 1; i < intNumLength; i++)
{
strYlib += ")";
}
strYlib += @")\s*$";

if (Regex.IsMatch(strNum, @strYlib) != true)
{
return false;
}
return true;
}

wzh307 2009-04-13
  • 打赏
  • 举报
回复
个人觉得最好使用正则表达式,
string input = Console.ReadLine();
bool IsNum = Regex.IsMatch(input,@"^\d+$");

xian_wwq 2009-04-13
  • 打赏
  • 举报
回复
推荐用正则表达式
accp22 2009-04-13
  • 打赏
  • 举报
回复
正则,正则我爱你。
tailor_ms 2009-04-13
  • 打赏
  • 举报
回复

public static bool IsAllCharactersNumber(string str)
{
bool bIsNumber = true;
if (str.Length == 0) return false;

for (int i = 0; i < str.Length; i++)
{
char cTemp = str[i];
int iTemp = Convert.ToInt32(cTemp);
if (iTemp < 48 || iTemp > 57)
{
bIsNumber = false;
break;
}
}

return bIsNumber;
}
春天的气息 2009-04-13
  • 打赏
  • 举报
回复
顶楼上,好办法,正则最省事。
whyabc 2009-04-13
  • 打赏
  • 举报
回复
up
wartim 2009-04-13
  • 打赏
  • 举报
回复
readline

static void Main(string[] args)
{
string S = Console.ReadLine();
bool IsNumber = true;
foreach (char c in S.ToCharArray())
IsNumber &= char.IsNumber(c);
Console.WriteLine(IsNumber.ToString());
Console.Read();
}
加载更多回复(10)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧