黑马程序员技术交流社区

标题: 求解“判断是否是合法的邮政编码(6位数字)” [打印本页]

作者: 马山闪    时间: 2014-3-25 16:03
标题: 求解“判断是否是合法的邮政编码(6位数字)”
本帖最后由 马山闪 于 2014-3-25 21:06 编辑

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

作者: mdb    时间: 2014-3-25 16:38
你要知道邮政编码的规则和合法的依据,然后再写程序去一个个验证就行了,假如就这道题来说,题目说得这么简单那就往简单的去做,看题目可以推出合法的依据是是否有"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.             }
复制代码

作者: 百川    时间: 2014-3-25 16:54
本帖最后由 百川 于 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.             }
复制代码




作者: 马山闪    时间: 2014-3-25 17:26
百川 发表于 2014-3-25 16:54
应该不会是只要求判断是否是6位数字吧?有没有什么其他的要求?没有的话就是这个了。。。。

只是让判断6位数字
作者: 马山闪    时间: 2014-3-25 17:27
mdb 发表于 2014-3-25 16:38
你要知道邮政编码的规则和合法的依据,然后再写程序去一个个验证就行了,假如就这道题来说,题目说得这么简 ...

这是基础测试上的题目,不会这么简单吧,还是我自己想的复杂了
作者: 马山闪    时间: 2014-3-25 17:29
mdb 发表于 2014-3-25 16:38
你要知道邮政编码的规则和合法的依据,然后再写程序去一个个验证就行了,假如就这道题来说,题目说得这么简 ...

看了邮编的依据,彻底蛋疼了,那还分省市神马的,太复杂
作者: mdb    时间: 2014-3-25 17:30
马山闪 发表于 2014-3-25 17:29
看了邮编的依据,彻底蛋疼了,那还分省市神马的,太复杂

如果只是一道面试题应该不会要求这么多,如果真要写一个实际可用的程序就要多写点代码了
作者: 马山闪    时间: 2014-3-25 20:59
mdb 发表于 2014-3-25 17:30
如果只是一道面试题应该不会要求这么多,如果真要写一个实际可用的程序就要多写点代码了 ...

嗯,说的也是,估计就是简单的算下长度跟只能输入数字




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2