Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Java Нужна помощь с заданием

Данила Лаврентьев Знаток (368), на голосовании 1 год назад
1. Создать статический метод который принимает на вход три параметра: login,
password и confirmPassword. Login должен содержать только латинские буквы, цифры
и знак подчеркивания. Длина login должна быть меньше 20 символов. Если login не
соответствует этим требованиям, необходимо выбросить WrongLoginException.
Password должен содержать только латинские буквы, цифры и знак подчеркивания.
Длина password должна быть меньше 20 символов. Также password и
confirmPassword должны быть равны. Если password не соответствует этим
требованиям, необходимо выбросить
WrongPasswordException. WrongPasswordException и WrongLoginException -
пользовательские классы исключения с двумя конструкторами – один по умолчанию,
второй принимает сообщение исключения и передает его в конструктор класса
Exception. Обработка исключений проводится внутри метода. Используем multi-catch
block. Метод возвращает true, если значения верны или false в другом случае.
(Задание с урока)
2. Интернет-магазин. Аутентификация пользователя:
Пусть у вас будет отображение, содержащие пары логин-пользователь. Если
пользователь ввел данные из этого отображения, он аутентифицирован. Если
введенные логин, пароль не содержатся в отображении, проверяете их корректность
(задание 1).
Голосование за лучший ответ
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (264043) 1 год назад
Логика примерно такая, проверяй сам

 public class AuthenticationExample { 

public static class WrongLoginException extends Exception {
public WrongLoginException() {
super("Wrong login");
}

public WrongLoginException(String message) {
super(message);
}
}

public static class WrongPasswordException extends Exception {
public WrongPasswordException() {
super("Wrong password");
}

public WrongPasswordException(String message) {
super(message);
}
}

public static boolean validate(String login, String password, String confirmPassword) {
try {
if (!login.matches("[A-Za-z0-9_]+") || login.length() >= 20) {
throw new WrongLoginException();
}

if (!password.matches("[A-Za-z0-9_]+") || password.length() >= 20 || !password.equals(confirmPassword)) {
throw new WrongPasswordException();
}

return true;
} catch (WrongLoginException | WrongPasswordException e) {
System.err.println(e.getMessage());
return false;
}
}

public static void main(String[] args) {
String login = "user123";
String password = "pass123";
String confirmPassword = "pass123";

if (validate(login, password, confirmPassword)) {
System.out.println("Registration successful.");
} else {
System.out.println("Registration failed.");
}
}
}
Александр Искусственный Интеллект (301635) 1 год назад
что за "отображение"? в базах что-ли
что-то вы валите всё в одну кучу...
Unknown Unknown Гуру (4950) 1 год назад
Первое задание оч интересное.На
 public static boolean foo(String login, String password, String passwordConfirm) { 

Pattern regex = Pattern.compile("[^a-zA-Z0-9_]");
boolean[] loginError = {false};
boolean[] passwordError = {false};


Thread loginThread = new Thread(() -> {
if (regex.matcher(login).find() || login.length() >= 20) {
System.err.println("WrongLoginException");
loginError[0] = true;
}
});
loginThread.start();

Thread passwordThread = new Thread(() -> {
if (regex.matcher(password).find() || password.length() >= 20 || password != passwordConfirm) {
System.err.println("WrongPasswordException");
passwordError[0] = true;
}
});
passwordThread.start();

try {
loginThread.join();
passwordThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}

return !(loginError[0] || passwordError[0]);
}
}
Похожие вопросы