c#判断字符串是否含有数字

iFTIME 2015-07-02 12:22:09
从控制台输入一个字符串,只能是15位或者18位,只有最后一位可以是字母,其他位都是数字,
如何符合就输出YES,否则输出NO。
这是我写的代码:
using System;
class Program
{
static void Main(String[] args)
{
string str = Console.ReadLine();
//write your code

string result = (str);
if (result == "true" && str.Length == 15 && str.Length == 18)
{
Console.WriteLine("YES");
}
else
{
Console.WriteLine("NO");
}

}
public static bool num(string t)
{
int j = t.Length;
for (int k = 0;k<j-1;k++)
{
byte tb = Convert.ToByte(t[k]);
if ((tb < 48) || (tb > 57))
return false;
}
return true;
}
}
...全文
1735 21 打赏 收藏 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eiceblue 2015-07-10
  • 打赏
  • 举报
回复
正则表达式吧
andy01010101 2015-07-06
  • 打赏
  • 举报
回复
身份证估计有现成的表达式
weixin_29044511 2015-07-06
  • 打赏
  • 举报
回复
正则表达式。
lccheer 2015-07-06
  • 打赏
  • 举报
回复
ASCII码 或者 正直表达式
无涯大者 2015-07-05
  • 打赏
  • 举报
回复
身份证检验,学习下正规表达式应该可以解决问题。
Poopaye 2015-07-02
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
Regex.IsMatch("",@"^\d{15}(\d{2}[0-9a-zA-Z])?$")
更正规的身份证验证规则自己搜索下
全栈极简 2015-07-02
  • 打赏
  • 举报
回复
你需要的是身份证号 正则表达式 验证。 好好学习一下这个,http://www.cnblogs.com/wuhuisheng/archive/2011/03/22/1991543.html
iFTIME 2015-07-02
  • 打赏
  • 举报
回复
using System; class Program { static void Main(String[] args) { string str = Console.ReadLine(); //write your code bool result = num (str); if (result == true && str.Length == 15 && str.Length == 18) { Console.WriteLine("YES"); } else { Console.WriteLine("NO"); } Console.ReadKey (); } public static bool num(string t) { for (int k = 0; k < t.Length - 1; k++) { byte tb = Convert.ToByte(t[k]); if ((tb < 48) || (tb > 57)) return false; } return true; } } 改成这样后 只有NO
dylike 2015-07-02
  • 打赏
  • 举报
回复
public bool HasNumber(string S) { if s like "*[0-9]*" ) { return true; } else { return false; } }
邱_子墨 2015-07-02
  • 打赏
  • 举报
回复
正则表达式可以
fantasykakaxi 2015-07-02
  • 打赏
  • 举报
回复
正则表达式可以解决 我知道asp.net可以用控件处理
於黾 2015-07-02
  • 打赏
  • 举报
回复
其实你应该让用户这样输入参数: >run.exe 1234567 s 前面是数字,加个空格,后面是字母 这样你读取出来就是2个参数,而不是一个参数
Poopaye 2015-07-02
  • 打赏
  • 举报
回复
引用 3 楼 iFTIME 的回复:
”只有最后一位可以是字母“ 这个弄不了
public static bool num(string t)
{
	int last = t.Length - 1;

	for (int k = 0; k < last; k++)
	{
		if (!Char.IsDigit(t[k]))
			return false;
	}

	if (!Char.IsLetterOrDigit(t[last]))
		return false;

	return true;
}
EdsionWang 2015-07-02
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
Regex.IsMatch("",@"^\d{15}(\d{2}[0-9a-zA-Z])?$")
更正规的身份证验证规则自己搜索下
+1 ,楼主需要的是正则表达式啊
我叫小菜菜 2015-07-02
  • 打赏
  • 举报
回复
很简单啊,既然都存到一个字符串里面了,直接下标访问,对比ASCII码就行了。数字区间是48~57

for(int i=0;i<str.length-1;i++)
{
if(str[i]>47 && str[i]<58) { return true; break;//包含数字}
}




xuzuning 2015-07-02
  • 打赏
  • 举报
回复
补遗 bool result = num(str); //num 方法返回的是 bool 类型数据
xuzuning 2015-07-02
  • 打赏
  • 举报
回复
string result = num(str); //定义了 num 方法总得去调用一下吧 if (result == true && str.Length == 15 && str.Length == 18) //num 方法返回的是 bool 类型,true 不能加引号
於黾 2015-07-02
  • 打赏
  • 举报
回复
既然是控制台,你应该要求用户按顺序输入多个参数,而不是把多个参数都写到一起去
iFTIME 2015-07-02
  • 打赏
  • 举报
回复
”只有最后一位可以是字母“ 这个弄不了
内容概要:本文详细描述了机械零件Part4的设计与建模过程,重点围绕三维建模中的几何构造操作展开。首先基于原零件三视图确定关键尺寸,依次创建多个同心圆柱体结构,包括外层圆柱体(52、52、5)、中间圆柱体(25、25、7)以及中心孔结构(16、16、12)。随后对底部圆柱体进行临时加高处理,以便在顶面草绘中构建辅助图形:以计算得出的半径17.5画圆,并在其接触面上方绘制半径为3的小圆,进而引出两条分别成60°和-60°的斜线,配合一条水平线形成三角形轮廓。接着在其余两角复制相同的小圆结构,清理多余线条后完成草图设计。利用该草图执行“拉伸切除”操作,深度设为16.28mm,实现特征开槽。最后将底部圆柱体恢复原始高度5mm,完成整体结构修改。; 适合人群:具备基础CAD建模能力的机械设计人员或工科类学生;熟悉SolidWorks、AutoCAD等三维设计软件的操作者;从事零部件逆向设计或结构优化的技术人员。; 使用场景及目标:①用于学习复杂零件的分步建模方法,掌握从三视图到三维实体的转换技巧;②理解拉伸、切除、草图约束、包围盒设置等核心建模命令的实际应用;③提升对尺寸链计算、辅助线构建及几何关系控制的理解与实践能力。; 阅读建议:建议结合文中参数逐步在建模软件中复现操作,重点关注草图绘制逻辑与切除特征的关联性,注意各步骤间的顺序依赖关系,避免因尺寸或约束错误导致建模失败。

111,128

社区成员

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

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

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