
上QQ阅读APP看书,第一时间看更新
1.5 拓展训练
良好的编码习惯可以大大提高可读性以及编码效率。请读者从一开始就养成一个良好的编码习惯。下面,我们通过以下校验邮件地址方法模板展示较为规范的编码格式。
package com.test; / ** * Title: 数组数据操作 * Description: 演示一维数组和多维数组的初始化和基本操作 * Filename: myArray.java * / public class MyArray{ //初始化数组变量 char[] cNum = {'1','2','3','4','5','6','7','8','9','0'}; char[] cStr = {'a','b','c','d','e','f','g','h', 'i','j','k','l','m','n','o','p', 'q','r','s','t','u','v','w','x','y','z'}; int[] iMonth = {31,28,31,30,31,30,31,31,30,31,30,31}; String[] sMail = {"@","."}; / ** *<br>方法说明:校验电子邮件 *<br>输入参数:String sPara 被校验的电子邮件字符 *<br>返回类型:boolean 如果校验的格式符合电子邮件格式返回true,否则返回false * / public boolean isMail(String sPara){ for(int i=0;i<sMail.length;i++){ if(sPara.indexOf(sMail[i])==-1) return false; } return true; } / ** *<br>方法说明:判断是否是数字 *<br>输入参数:String sPara。需要判断的字符串 *<br>返回类型:boolean。如果都是数字类型,返回true,否则返回false * / public boolean isNumber(String sPara){ int iPLength = sPara.length(); for(int i=0;i<iPLength;i++){ char cTemp = sPara.charAt(i); boolean bTemp = false; for(int j=0;j<cNum.length;j++){ if(cTemp==cNum[j]){ bTemp = true; break; } } if(!bTemp) return false; } return true; } / ** *<br>方法说明:判断是否都是英文字符 *<br>输入参数:String sPara。要检查的字符 *<br>返回类型:boolean。如果都是字符返回true,反之为false * / public boolean isString(String sPara){ int iPLength = sPara.length(); for(int i=0;i<iPLength;i++){ char cTemp = sPara.charAt(i); boolean bTemp = false; for(int j=0;j<cStr.length;j++){ if(cTemp==cStr[j]){ bTemp = true; break; } } if(!bTemp) return false; } return true; } / ** *<br>方法说明:判断是否是闰年 *<br>输入参数:int iPara。要判断的年份 *<br>返回类型:boolean。如果是闰年返回true,否则返回false * / public boolean chickDay(int iPara){ return iPara%100==0&&iPara%4==0; } / ** *<br>方法说明:检查日期格式是否正确 *<br>输入参数:String sPara。要检查的日期字符 *<br>返回类型:int。0为日期格式正确,-1为月或日不合要求,-2为年月日格式不正确 * / public int chickData(String sPara){ @SuppressWarnings("unused") boolean bTemp = false; //所输入日期长度不正确 if(sPara.length()!=10) return -2; //获取年 String sYear = sPara.substring(0,4); //判断年是否为数字 if(!isNumber(sYear)) return -2; //获取月份 String sMonth = sPara.substring(5,7); //判断月份是否为数字 if(!isNumber(sMonth)) return -2; //获取日 String sDay = sPara.substring(8,10); //判断日是否为数字 if(!isNumber(sDay)) return -2; //将年、月、日转换为数字 int iYear = Integer.parseInt(sYear); int iMon = Integer.parseInt(sMonth); int iDay = Integer.parseInt(sDay); if(iMon>12) return -1; //闰年二月处理 if(iMon==2&&chickDay(iYear)){ if(iDay>29) return 2; }else{ if(iDay>iMonth[iMon-1]) return -1; } return 0; } / ** *<br>方法说明:主方法,测试用 *<br>输入参数: *<br>返回类型: * / public static void main(String[] arges){ MyArray mA = new MyArray(); //校验邮件地址 boolean bMail = mA.isMail("tom@163.com"); System.out.println("1 bMail is "+bMail); bMail = mA.isMail("tom@163com"); System.out.println("2 bMail is "+bMail); //演示是否是数字 boolean bIsNum = mA.isNumber("1234"); System.out.println("1:bIsNum="+bIsNum); bIsNum = mA.isNumber("123r4"); System.out.println("2:bIsNum="+bIsNum); //演示是否是英文字符 boolean bIsStr = mA.isString("wer"); System.out.println("1:bIsStr="+bIsStr); bIsStr = mA.isString("wer3"); System.out.println("2:bIsStr="+bIsStr); //演示检查日期 int iIsTime = mA.chickData("2003-12-98"); System.out.println("1:iIsTime="+iIsTime); iIsTime = mA.chickData("2003-111-08"); System.out.println("2:iIsTime="+iIsTime); iIsTime = mA.chickData("2003-10-08"); System.out.println("3:iIsTime="+iIsTime); iIsTime = mA.chickData("2000-02-30"); System.out.println("4:iIsTime="+iIsTime); } }
运行结果如图1-3所示。

图1-3 运行结果