一个很简单却又很怪异的JAVA基础问题
问题:实现用户注册功能,用户输入账号、密码和确认密码,注册用户!
要求:a.用户的帐号为邮箱形式,必须对邮箱进行验证
b.密码必须和确认密码一致
c.密码的长度必须是8-16位
d.用户的帐号不能包涵china,中国,共产党这些敏感字符
e.用户输入非法要给用户合理的提示
这个功能我可以实现,但是在测试的时候第一次帐号输入错误,以后都输入正确的话,在注册成功以后还会要你输入密码。源代码我贴出来,各位高手大大帮我看看那里出现错误了
import java.util.Scanner;public class Zhuce { Scanner input = new Scanner(System.in); public void zhuce() { System.out.println("请输入账号"); String s = input.next(); boolean b = false; boolean c = false; if (s.equals("china") || s.equals("中国") || s.equals("共产党")) { System.out.println("您的账号无效"); System.out.println("是否继续 Y/N?"); String j = input.next(); if (j.equals("y")) { zhuce(); } else { System.out.println("您退出了注册"); } } else { if (s.indexOf('@') != -1 && s.indexOf('.') > s.indexOf('@')) { b = true; } else { System.out.println("您的账号无效"); System.out.println("是否继续 Y/N?"); String i = input.next(); if (i.equals("y")) { zhuce(); } else { System.out.println("您退出了注册"); } } } System.out.println("请输入密码"); String m = input.next(); System.out.println("请再次输入密码"); String n = input.next(); if (m.equals(n) && m.length() <= 16 && m.length() >= 8) { c = true; } else { System.out.println("您输入的密码有错"); System.out.println("是否继续 Y/N?"); String k = input.next(); if (k.equals("y")) { zhuce(); } else { System.out.println("您退出了注册"); } } if (b && c) { System.out.println("注册成功"); } } public static void main(String[] args) { Zhuce z=new Zhuce(); z.zhuce(); }}