【2017-12-08】c#基础-程序开发思路初认识
以验证邮箱为例:
“请输入您的邮箱:”
1-“邮箱正确!/错误!”
2-“只能有一个@符号”
3-“不能以@开头”
4-“不能以@结尾”
5-“@之后必须有点”
6-“@之后不能是点”
7-最少一个点,最多两个点
8-“不能以点结尾”
9-不能以数字结束
1 #region 定义变量 2 //1 -“邮箱正确!/ 错误!”,end放置最终结果 3 string end = "邮箱正确!"; 4 //2 -“只能有一个 @符号” 5 bool atOnlyOne = true; 6 //3 -“不能以 @开头” 7 bool atStart = true; 8 //4 -“不能以 @结尾” 9 bool atEnd = true; 10 //5 -“@之后必须有点” 11 bool atDian = true; 12 //6 -“@之后不能是点” 13 bool atNoDian = true; 14 //7 - 最少一个点,最多两个点 15 bool dianOneOrTwo = true; 16 //8 -“不能以点结尾” 17 bool dianEnd = true; 18 //9 - 不能以数字结束 19 bool numEnd = true; 20 #endregion 21 22 //让用户输入邮箱 23 Console.Write("请输入你的邮箱地址:"); 24 string user_mail = Console.ReadLine(); 25 26 if (user_mail.Length > 0) 27 { 28 #region 只能有一个 @符号 29 int a1 = user_mail.IndexOf("@"); 30 if (a1 == -1) 31 { 32 atOnlyOne = false; 33 end = "邮箱格式错误!"; 34 } 35 else 36 { 37 int a2 = user_mail.IndexOf("@",a1+1); 38 if (a2 != -1) 39 { 40 atOnlyOne = false; 41 end = "邮箱格式错误!"; 42 } 43 } 44 #endregion 45 46 #region 不能以 @开头 47 if (user_mail.StartsWith("@")) 48 { 49 atStart = false; 50 end = "邮箱格式错误!"; 51 } 52 #endregion 53 54 #region 不能以 @结尾 55 if (user_mail.EndsWith("@")) 56 { 57 atEnd = false; 58 end = "邮箱格式错误!"; 59 } 60 #endregion 61 62 #region @之后必须有点 63 if (atOnlyOne == true) 64 { 65 string a3 = user_mail.Substring(user_mail.IndexOf("@")); 66 if (!a3.Contains(".")) 67 { 68 atDian = false; 69 end = "邮箱格式错误!"; 70 } 71 } 72 #endregion 73 74 #region@之后不能是点 75 if (user_mail.IndexOf("@.") != -1) 76 { 77 atNoDian = false; 78 end = "邮箱格式错误!"; 79 } 80 #endregion 81 82 #region 最少一个点,最多两个点 83 int count = 0; 84 int a5 = -1; 85 while (true) 86 { 87 a5 = user_mail.IndexOf(".", a5 + 1); 88 if (a5 != -1) 89 count++; 90 else 91 break; 92 } 93 if (count != 1 && count != 2) 94 { 95 dianOneOrTwo = false; 96 end = "邮箱错误!"; 97 } 98 #endregion 99 100 #region 不能以点结尾 101 if (user_mail.EndsWith(".")) 102 { 103 dianEnd = false; 104 end = "邮箱格式错误!"; 105 } 106 #endregion 107 108 #region 不能以数字结束 109 string a6 = user_mail.Substring(user_mail.Length - 1, 1); 110 try 111 { 112 Convert.ToInt32(a6); 113 numEnd = false; 114 end = "邮箱格式错误!"; 115 } 116 catch { } 117 #endregion 118 119 #region 打印结果 120 if (atOnlyOne == false) 121 Console.WriteLine("有且只有一个 @符号"); 122 else if (atStart == false) 123 Console.WriteLine("不能以 @开头"); 124 else if (atEnd == false) 125 Console.WriteLine("不能以 @结尾"); 126 else if (atDian == false) 127 Console.WriteLine("@之后必须有点"); 128 else if (atNoDian == false) 129 Console.WriteLine("@之后不能是点"); 130 else if (dianOneOrTwo == false) 131 Console.WriteLine("最少一个点,最多两个点"); 132 else if (dianEnd == false) 133 Console.WriteLine("不能以点结尾"); 134 else if (numEnd == false) 135 Console.WriteLine("不能以数字结束"); 136 137 Console.WriteLine(end); 138 #endregion 139 } 140 else 141 { 142 Console.WriteLine("邮箱不能为空!"); 143 }
把每一个小功能分成一小块去开发(#region...#endregion可折叠),哪里出错修改哪里,便于修改,同时便于增加新功能。
转载于:https://www.cnblogs.com/zqyyx/p/8005778.html
【2017-12-08】c#基础-程序开发思路初认识相关推荐
- 微信小程序红包开发思路 微信红包小程序开发思路讲解
之前公司开发小程序红包,将自己在开发的过程中遇到的一些坑分享到了博客里.不少人看了以后,还是不明白怎么开发.也加了我微信咨询.所以今天,我就特意再写一篇文章,这次就不谈我开发中遇到的坑了.就主要给大家 ...
- “12步”揭开iPhone程序开发神秘面纱
iPhone手机对于各位时尚潮人来说一定不会陌生,而iPhone的风行除了依靠其良好的用户体验,很大一部分原因在于iPhone的App Store中的程序.iPhone的App Store以其独特的经 ...
- 【移动开发】2022 年 12 大移动应用程序开发趋势
据统计,Google Play Store 和 Apple App Store 中有超过 500 万个应用程序可用.对于更具创新性的解决方案,企业需要顶级移动应用程序开发趋势来帮助企业持续增长的端到端 ...
- 嵌入式Linux系统基础程序开发
文章目录 一. ubuntu开发环境下使用gcc编译c程序 1.编写helloworld的c程序 2.编写一个主程序文件 main1.c 和一个子程序文件 sub1.c 二,在window系统中使用 ...
- 【306天】我爱刷题系列065(2017.12.08)
叨叨两句 完美组织完一次团购~ 1 下列在Java语言中关于数据类型和包装类的说法,正确的是() 正确答案: B 基本(简单)数据类型是包装类的简写形式,可以用包装类替代基本(简单)数据类型 long ...
- 视觉基础与开发思路-第九节形态学操作
转载于:https://www.cnblogs.com/chita/p/3642145.html
- 驱动开发思路以及应用程序与驱动程序的区别
SOC: 采用的A7的核 片内设备: 1.片内控制器: i2c控制器.spi控制器.uart控制器.gpio控制器-- 2.总线: 平台总线 3.片内存储器: irom:掉电不丢失数据 iram:掉电 ...
- 微信小程序开发者工具初体验及实现技术初探
微信小程序是当前的热点,市面上已经有很多微信小程序开发相关的文章,今天晚上抽了点时间折腾了微信小程序,并顺便看看了下微信小程序开发者工具的实现,是使用Node.js开发的,UI是基于NW.js框架开发 ...
- 从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 转载 2017年08月01日 17:09:03 标签: 机器学习 / 数据 719 转自:http://www.sohu.com/a/12
从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 转载 2017年08月01日 17:09:03 标签: 机器学习 / 数据 719 转自:http://www.sohu.com/a/1293 ...
最新文章
- easyexcel怎么设置表头宽度_easyexcel 自动设置列宽
- VS2013 编译使用 stlport
- No module named ‘skimage.metrics‘在Anaconda3中的解决方法
- 4月数据库流行度排行出炉:MySQL 成事实王者
- Android UI库书签
- 关于数据库事务启用后的查询操作
- 底层技术革命是如何爆发的?_转
- linux系统查看服务进程,Linux服务器系统详细查看进程启动时间
- Nginx防止恶意解析-禁止通过IP访问网站
- 推荐21个顶级的Vue UI库!
- extract进程 oracle,OracleGoldenGate系列:Extract进程的恢复原理
- 列举微型计算机的主要性能指标,计算机基础考试纲.ppt
- jmeter throughput图表_jmeter生成HTML格式性能测试报告
- 用JSP实现简单的留言板
- 邵武一中2021高考成绩查询,福建高中成绩排名2021,福建中考分数线排行榜
- ucserver admin.php,Discuz!X3.2 升级后ucenter、uc_server正确密码却无法登录后台的解决方法...
- HTC Vive开发笔记之手柄震动 转
- 使用2345安全卫士后打开浏览器主页锁定为2345
- 么是形参?什么是实参?
- Qt error: /usr/bin/ld: cannot find -lGL: No such file or directory