发现几个问题:
- 带参方法并非任何时候都好用
- 使用this引用会导致错误
- 利用了局部变量的一些好处(例如:index,index1)
运行效果图:
参考代码1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | package cn.puruidong.accp_15; /** * @author PuRuidong * */ import java.util.Scanner; public class Test5 { public String name ; //名字 private String pre ; //密码 private String newname ; //验证名字 private String newpre ; //验证密码 private String mail ; //邮箱 private String file ; //java文件名 private boolean loginzhi ;//登录验证 private int index ; //indexOf方法定义 private int index1 ; //lastIndexOf方法定义 private Scanner sc = new Scanner (System.in); public String inname (){ System.out.println("********注册系统*********"); boolean namezhi = false ;//定义循环 do { System.out.println("请输入用户名(长度不小于5位):"); name = sc.next(); //录入用户名 if (name.length()<5){ System.out.println("用户名长度必须大于5位."); System.out.println("请重新录入!"); namezhi = true ; continue ; } else{ namezhi = false; } } while (namezhi!=false); return name ; //返回用户名 } public String inpre (){ boolean prezhi = false ; do { System.out.println("请输入密码不小于6位,并且必须包含小写字母:java):"); pre = sc.next(); //录入密码 index= pre.indexOf("java"); if (pre.length()<6||index==-1){ //密码长度小于6,或者没有在密码中找到java字样则重复录入 System.out.println("密码长度必须大于6位!或者密码中不包含java!"); System.out.println("请重新录入!"); System.out.println(); prezhi = true ; } else { prezhi = false ; } } while (prezhi!=false); return pre ; //返回密码 } public String inmail (){ this.mail=mail; boolean mailzhi = false ; do { System.out.println("请输入邮箱:"); mail = sc.next(); //录入邮箱 index = mail.indexOf("@"); index1 = mail.lastIndexOf("."); if (index1==-1||index==0||index==-1||index>index1||(index+1==index1)){ //判断.是否在@的后面 System.out.println("对不起,邮箱格式输入错误!"); System.out.println("请重新录入!"); System.out.println(); mailzhi = true ; } else { mailzhi = false ; } } while (mailzhi!=false); return mail ; //返回邮箱 } public boolean login (boolean loginzhi){ System.out.println("********登录系统*********"); loginzhi = false ; for (int i=4;i>0;i--){ System.out.println("请输入用户名(用户名与密码均忽略大小写):"); newname = sc.next();//验证用户名 System.out.println("请输入密码:"); newpre = sc.next(); //验证密码 if (newname.equalsIgnoreCase(name)&&newpre.equalsIgnoreCase(pre)){ //验证用户名与原用户名是否相等,或者邮箱与原邮箱是否相等,验证密码 System.out.println("恭喜,登录成功!"); System.out.println(""); loginzhi = true ; //登录成功标记 break ; } else { System.out.println("抱歉,输入错误!"); System.out.println("您还有"+(i-1)+"次输入机会!"); loginzhi = false ;//登录失败标记 } } if (loginzhi==false){ //一旦登录失败将退出程序,不再执行下方的部分 System.out.println("登录失败,程序退出,谢谢使用!"); System.exit(0); //退出程序 } return loginzhi ; } public String infile (){ for (int i=4;i>0;i--){ System.out.println("请输入java文件名:"); file = sc.next(); //录入文件名 index = file.indexOf("."); //检查.的位置 index1 = file.lastIndexOf("java"); //检查java所在的位置 if (index==-1||index==0||index1==-1||index1<index){ System.out.println("抱歉文件名录入错误,请检查!"); continue ; } else { System.out.println("恭喜,提交成功!"); break; } } return file ; } public void show (){ System.out.println("您录入的信息是:"); System.out.println("*******************************"); System.out.println("用户名:"+name); System.out.println("密码:"+pre); System.out.println("邮箱"+mail); System.out.println("文件名:"+file); System.out.println(); System.out.println("程序退出,谢谢使用!"); } /** * @param args */ } |
参考代码2(测试类):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package cn.puruidong.accp_15; /** * @author PuRuidong * */ public class Ttest5 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Test5 center = new Test5(); boolean loginzhi = true ; center.inname(); center.inpre(); center.inmail(); center.login(loginzhi); center.infile(); center.show(); } } |