- 5
- 0
- 约1.51千字
- 约 2页
- 2017-06-10 发布于北京
- 举报
对于.NET平台的WinForm程序来说,好多情况下都会遇到判断输入的字符是否是数值的情况.碰到类似的问题,一般有这样几种解决方式:
1 使用char关键字的IsNumber()方法获取输入子符串的每一位字符,通过调用char关键字的IsNumber()方法分别判断是否是数字来达到目的,但是这种方法一旦遇到带小数点的数值型变量就必须要加入判断的逻辑代码来处理小数点带来的问题.非常麻烦.
2 使用 try { }关键字捕获日常
利用数值型的变量可以执行加减运算这个特性,在一个try{}里面强行把该输入的变量转换成一个数值型变量,如果是数值型就能正常地转换,如果不是转换的时候会发生错误,系统就会捕捉这个错误,从而我们可以获知输入是否是数值型.
3 使用所有数值型关键字的TryParse()方法
??凡是数值型的关键字,例如int, float都有TryParse()方法,调用该方法的时候它会尝试着去转换,如果能转换的话就转换成数值型,并给调用该方法的地方返回一个布尔值true,当不能转换的时候给调用该方法的地方返回一个布尔值false.
4使用正则表达式
? 学习C#语言的时候很少会提到正则表达式,但是事实上.Net FrameWork确实也给我们提供了这样一个类来共我们实现某些类型判断的功能.
该类存在于System.Text.RegularExpressions命名空间下.
? 可以使用Regex类的 IsMatch方法来判断输入的字符串是否符合相应的条件,当然这里所说的条件是指正则表达式.以下是经常使用的正则表达式:
^[1-9]\d*$ //匹配正整数^-[1-9]\d*$ //匹配负整数^-?[1-9]\d*$ //匹配整数^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)评注:处理大量数据时有用,具体应用时注意修正匹配特定字符串:^[A-Za-z]+$ //匹配由26个英文字母组成的字符串^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串^[a-z]+$ //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
? 在上面我们使用了Regex类的 IsMatch方法来判断输入的字符串.其实对于c#中的正则表达式来说不光只有这一个方法,好包括其他的静态方法:
Escape: 对字符串中的regex中的转义符进行转义;? Match: 返回Match的实例;? Matches: 返回一系列的Match的方法;? Replace: 用替换字符串替换匹配的表达式;? Split: 返回一系列由表达式决定的字符串;? Unescape:不对字符串中的转义字符转义;
您可能关注的文档
- AutoCAD应用技巧44例对考CAD认证有帮助.docx
- AutoCAD建筑制图教程目录.doc
- AUTOCAD快捷技能集锦.docx
- AutoCAD快捷绘图命令.doc
- AUTOCAD快捷键命令大全.docx
- AutoCAD快捷键命令大集合.doc
- AutoCAD快捷键必背.doc
- AutoCAD快捷键操作方法.doc
- AutoCAD快捷键笔记[1].doc
- AutoCAD技巧看你知多少.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)