黑马程序员技术交流社区
标题:
像这种判断字符串格式的题目,在C#中用什么方法和语句
[打印本页]
作者:
管冉
时间:
2012-12-24 18:38
标题:
像这种判断字符串格式的题目,在C#中用什么方法和语句
本帖最后由 管冉 于 2012-12-24 20:33 编辑
判断字符串是否为正确的国内电话号码,不考虑分机。比如“010-95555”、“01095555”、“95555”都是正确的号码。区号为3位或者4位。
作者:
王继光
时间:
2012-12-24 18:46
本帖最后由 王继光 于 2012-12-24 18:50 编辑
A 。 判断是否包含 - 号
包含则按一下方法判断
1.先按字符串 用 split 方法按 -分割
2.判断 前一部分 的长度 以及是否全是数字
3.判断后一部分的长度 以及是否全是数字
B 不包含 - 号
判断位数 以及 是否全是数字
按需求 看什么样的符合电话号码的规律
最好的话 是按 数据库里电话号码的 统一特征来考虑 这里我只是针对你说的3个号码 抛砖引玉
作者:
许晓华
时间:
2012-12-24 19:19
方法是使用正则表达式
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
string regexTest = @"0\d{2,3}-\d{8}"; //构造正则表达式
string testPhone = "0531-88886666"; //输入测试号码
Console.WriteLine("是否为国内电话:" + Regex.IsMatch(testPhone, regexTest));
}
}
复制代码
作者:
张鹏飞
时间:
2012-12-24 19:45
同样是正则表达式,传入电话号码字符串strphone,返回True或者False;
满足True条件:区号为3位时电话号码为5位或8位,区号为4位时电话号码为5位或7位,允许区号后有'-'号
public static bool IsPhone(string strphone)
{
return Regex.IsMatch(strphone, "^0\\d{2}[- ]?\\d{8}$|^0\\d{2}[- ]?\\d{5}$|^0\\d{3}[- ]?\\d{7}$|^0\\d{3}[- ]?\\d{5}$");
}
复制代码
作者:
王继光
时间:
2012-12-24 19:48
嗯, 确实,正则表达式 更简洁。。 多谢楼上2位提醒。
作者:
管冉
时间:
2012-12-24 20:59
之前都没接触到过正则表达式,刚刚去百度了解了下,功能很强大
http://www.jb51.net/tools/zhengze.html这个网页讲的很通俗啊
作者:
甘斌斌
时间:
2013-6-11 11:39
谢了,这题确实我也不会!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2