A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 马山闪 于 2014-3-25 21:06 编辑

最近在写一些题,碰到这个题,就是判断是否为合法的邮政编码的问题(6位数字的),在网上看都是正则,但是正则不会啊,有没有大神能用个笨方法一步一步实现下

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

7 个回复

正序浏览
mdb 发表于 2014-3-25 17:30
如果只是一道面试题应该不会要求这么多,如果真要写一个实际可用的程序就要多写点代码了 ...

嗯,说的也是,估计就是简单的算下长度跟只能输入数字
回复 使用道具 举报
mdb 中级黑马 2014-3-25 17:30:56
7#
马山闪 发表于 2014-3-25 17:29
看了邮编的依据,彻底蛋疼了,那还分省市神马的,太复杂

如果只是一道面试题应该不会要求这么多,如果真要写一个实际可用的程序就要多写点代码了
回复 使用道具 举报
mdb 发表于 2014-3-25 16:38
你要知道邮政编码的规则和合法的依据,然后再写程序去一个个验证就行了,假如就这道题来说,题目说得这么简 ...

看了邮编的依据,彻底蛋疼了,那还分省市神马的,太复杂
回复 使用道具 举报
mdb 发表于 2014-3-25 16:38
你要知道邮政编码的规则和合法的依据,然后再写程序去一个个验证就行了,假如就这道题来说,题目说得这么简 ...

这是基础测试上的题目,不会这么简单吧,还是我自己想的复杂了
回复 使用道具 举报
百川 发表于 2014-3-25 16:54
应该不会是只要求判断是否是6位数字吧?有没有什么其他的要求?没有的话就是这个了。。。。

只是让判断6位数字
回复 使用道具 举报
本帖最后由 百川 于 2014-3-25 16:56 编辑

应该不会是只要求判断是否是6位数字吧?有没有什么其他的要求?没有的话就是这个了。。。。
  1. bool end = true;
  2.             Console.WriteLine("请输入一个邮编。");
  3.             string str = Console.ReadLine();
  4.             if (str.Length != 6)
  5.             {
  6.                 end = false;
  7.             }
  8.             for (int i = 0; i < str.Length; i++)
  9.             {
  10.                 switch (str[i])
  11.                 {
  12.                     case '1':
  13.                     case '2':
  14.                     case '3':
  15.                     case '4':
  16.                     case '5':
  17.                     case '6':
  18.                     case '7':
  19.                     case '8':
  20.                     case '9':
  21.                     case '0': break;
  22.                     default: end = false; break;
  23.                 }
  24.             }
  25.             if (end == true)
  26.             {
  27.                 Console.WriteLine("是正确的邮编。");
  28.             }
  29.             else
  30.             {
  31.                 Console.WriteLine("输入不正确。");
  32.             }
复制代码



回复 使用道具 举报
你要知道邮政编码的规则和合法的依据,然后再写程序去一个个验证就行了,假如就这道题来说,题目说得这么简单那就往简单的去做,看题目可以推出合法的依据是是否有"6位数字",那么它认为只要是"6位数字"那邮政编码都是合法的(其实不一定,真正的规则里的数字都是有意义的),那么可以直接进行简单的判断,这样就可以转成另一个问题,怎么样判断它是一个6位的数字,这样想就简单得多了,不用正则的方法
  1.             string youbian = "100193";// 假设传过来的是字符串
  2.             int yb = 0;
  3.             if (youbian.Length == 6 && int.TryParse(youbian, out yb))// 首先长度要到6位,并且还是个数字
  4.             {
  5.                 Console.WriteLine("合法");
  6.             }
  7.             else
  8.             {
  9.                 Console.WriteLine("不合法");
  10.             }
复制代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马