思路:过关斩将,正确方法取反
package com.hspedu.HomeworkRverse;
import jdk.nashorn.internal.ir.CallNode;
/**
* @author: guorui fu
* @versiion: 1.0
*/
public class HomeworkException {
public static void main(String[] args) {
String name = "城堡";
String passWords = "221284";
String email = "1993565@.email";
String s = " ";
try {
s = userRegister(name, passWords, email);
System.out.println("注册成功!!");
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println(s);
}
public static String userRegister(String name,String passWords,String email){
//第一关,用户名长度
int length = name.length();
if (!(2 <= length && length <= 4)){
throw new RuntimeException("用户名输入长度不正确");
}
//第二关,密码长度为6,不能有字母
if (passWords.length() == 6 && isDigital(passWords)){
throw new RuntimeException("密码长度只能为6,并且只能为数字");
}
//第三关 必须输入@与.,并且.要在@之后
int i1 = email.indexOf('@');
int i2 = email.indexOf('.');
if (!(i1 > 0 && i1 < i2)){
throw new RuntimeException("必须输入字符@与字符. 并且.要在@之后");
}
return "用户名:" + name + " 密码:" + passWords + " 邮箱:" + email;
}
public static boolean isDigital(String str){
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (!(chars[i] >= '0' && chars[i] <= 9)){
return false;
}
}
return true;
}
}