/*(程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:编写一个名称为MyClass的类,在该类中编写一个方法,名称为CountNum,输入一串数字和一个要查找的数字,统计该串数字中出现了几次要查找的数字.
* 要求输入的数字要符合正则表达式。
* 作 者:姜甜甜
* 完成日期: 2016 年 04月 23 日
* 程序头部的注释结束
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Myclass t = new Myclass();
t.CountNum();
Console.ReadKey();
}
}
class Myclass
{
public Boolean isNum(string val)
{
Regex rex = new Regex(@"^[+-]?\d*[.]?\d*$");
if (rex.IsMatch(val))
{
return true;
}
return false;
}
public static bool ISIntNum(string input)
{
Regex reg = new Regex("^\\d+$");
Match m = reg.Match(input);
return m.Success;
}
public void CountNum()
{
Console.WriteLine("请输入一串数字和要查找的数字:");
string s = Console.ReadLine();
string t = Console.ReadLine();
if (ISIntNum(s) && ISIntNum(t))
{
int c = 0;
char[] a = s.ToCharArray();
for (int i = 0; i < a.Length; i++)
{
if (a[i].ToString() == t)
c++;
}
Console.WriteLine(c);
}
}
}
}
2 设计一个扩展方法用于验证据民生身份证合法性。正则表达式为:\d{17}[\d|X]|\d{15}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace getnum
{
public static class Extensions
{
//身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。
public static Boolean yanz(this string s)
{
bool t =false;
Regex rex = new Regex(@"^\d{17}[\d|X]|\d{15}$"); // \d 表是0-9的数字 {}表示有多少个数字
if (rex.IsMatch(s))
{
return true;
}
return t;
}
}
class Program
{
static void Main(string[] args)
{
string s = "12345678910";//<15
string s1 = "1234567891234567";//=15
string s2 = "12345678912345678X";
Console.WriteLine(s.yanz());
Console.WriteLine(s1.yanz());
Console.Write(s2.yanz());
Console.ReadKey();
}
}
}
FalseTrue
True