黑马程序员技术交流社区
标题:
字符串的分割问题
[打印本页]
作者:
王超洋
时间:
2012-5-18 02:24
标题:
字符串的分割问题
要求用户输入身份证号,如果用户输入的有不是数字或不等于18位就给用户报错,这个程序该如何写?想了半天没想出来,求解。。
string str1 = textBox1.Text;
//str1.Substring(1,str1.Length);
//for (int i = 0; i <= str1.Length;i++ )
//{
// int i1;
// if(int.TryParse(str1,out i1)==false||i!=18)
// {
// MessageBox.Show("输入错误");
// return;
// }
//}
str1是用户输入的字符串,这个是我写的,调试错误..
作者:
索学超
时间:
2012-5-18 08:46
使用正则表达式,很简单滴,如果需要不用正则表达式的,你说下,我也给你写下代码
这种方法要先加入声明命名空间:
using System.Text.RegularExpressions;
然后在方法中声明验证规则:
string s_reg = @"^\d{18}$";
声明要验证的字符串:
string s = textBox1.Text;
新建一个实例,并将验证规则以参数形式传入实例,
初始化类: Regex reg = new Regex( s_reg );
然后拿实例对要验证的字符串进行验证,返回结果为bool值:
if ( reg.IsMatch (s) )
{
MessageBox.Show( "It 's OK~");
}
else
{
MessageBox.Show( "It 's Bad~");
}
作者:
郑玉赛
时间:
2012-5-18 09:39
Console.WriteLine("请输入18位有效身份证号");
string s = Console.ReadLine();
if (s.Length == 18)//可以把string类型看做一个char数组,这里就判断数组长度是否为18
{
try
{
long j = Convert.ToInt64(s);//将输入的转换为长整形,失败就证明不是数字。
Console.WriteLine("{0}",j);
}
catch
{
Console.WriteLine("输入非法");
}
}
else
{
Console.WriteLine("身份证必须为18位数");
}
Console.ReadKey();
作者:
郑玉赛
时间:
2012-5-18 09:42
就想到这个方法,本来想将18位的一个一个字符强制转换的,但是发现不管输入的是不是数字,都转换成ascii码值了。
作者:
郑玉赛
时间:
2012-5-18 11:06
Console.WriteLine("请输入18位有效身份证号");
string s = Console.ReadLine();
if (s.Length == 18)//可以把string类型看做一个char数组,这里就判断数组长度是否为18
{
for (int i = 0; i < s.Length; i++)
{
if (Char.IsDigit(s[i]))//判断s中每一个字符是否是数字
{
Console.WriteLine(s[i]);
}
else
{
Console.WriteLine("身份证必须由数字组成");
Console.ReadKey();
}
return;
}
}
else
{
Console.WriteLine("身份证必须为18位数");
}
Console.ReadKey();
这个是刚刚我问了别人回答之后,我再优化了一下。
作者:
常静华
时间:
2012-7-8 12:58
首先,你可以学习一下正则表达式!!代码如下
//引用命名空间
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入您18位或者15位的身份证:");
string card = Console.ReadLine();
string RegCard = @"^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$";
Match match = Regex.Match(card, RegCard);
if (match.Groups.Count <= 1)
{
Console.WriteLine("身份证输入有误!");
Console.ReadKey();
}
}
}
}
作者:
程艳伟
时间:
2012-7-8 17:29
直接正则啊,很简单的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2