Task - Exception Handling - User Input Validation #29
Replies: 49 comments 11 replies
-
import java.util.*;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
class PersonDetails {
String firstName;
String lastName;
String email;
String password;
IndianPhoneNumber[] phoneNumbers;
Date dateOfBirth;
public PersonDetails(String firstName, String lastName, String email, String password,
IndianPhoneNumber[] phoneNumbers, Date date ) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.phoneNumbers = phoneNumbers;
this.date = date;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public String getFullName() {
return firstName + " " + lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public IndianPhoneNumber[] getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(IndianPhoneNumber[] phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
@Override
public String toString() {
return "PersonDetails [email=" + email + ", firstName=" + firstName + ", lastName=" + lastName + ", password="
+ password + ", phoneNumbers=" + Arrays.toString(phoneNumbers) + "]";
}
}
public class Validation {
static boolean isAlphabet(String s) {
for (int i = 0; i < s.length(); i++) {
if (!(Character.isLetter(s.charAt(i))))
return false;
}
return true;
}
static boolean isValidPhoneNumber(String phone) {
if (phone.length() != 10)
return false;
for (int i = 0; i < phone.length(); i++) {
if (!(Character.isDigit(phone.charAt(i))))
return false;
}
return true;
}
static boolean isValidEmail(String email) {
int dot = 0;
int at = 0;
for (int i = 0; i < email.length(); i++) {
if (email.charAt(i) == ' ')
return false;
if (email.charAt(i) == '@')
at++;
if (email.charAt(i) == '.')
dot++;
}
return (dot > 0 && at > 0);
}
static boolean isValidPassword(String password) {
if (password.length() < 8 || password.length() > 16)
return false;
int digits = 0;
for (int i = 0; i < password.length(); i++) {
if (Character.isDigit(password.charAt(i)))
digits++;
}
return digits > 0;
}
static boolean isValidDate(Date dateOfBirth) {
Calendar cal = Calendar.getInstance();
cal.setTime(dateOfBirth);
return ((cal.get(Calendar.MONTH) >= 1 || cal.get(Calendar.MONTH) <= 12)
&& (cal.get(Calendar.DATE) >= 1 || cal.get(Calendar.DATE) <= 31)
&& (cal.get(Calendar.YEAR) >= 1900 || cal.get(Calendar.YEAR) <= 2009));
}
static void validate(PersonDetails p) throws IllegalArgumentException {
if (!isAlphabet(p.getFirstName()))
throw new IllegalArgumentException("First name can only contain alphabets.");
if (!isAlphabet(p.getLastName()))
throw new IllegalArgumentException("Last name can only have alphabets.");
if (!isValidEmail(p.getEmail()))
throw new IllegalArgumentException(
"Email should contain an (.) and an (@) and should not have any spaces in between");
if (!isValidPassword(p.getPassword()))
throw new IllegalArgumentException(
"Password should be between 8 an 16 characters and should contain atleast one digit");
IndianPhoneNumber[] phoneNumbers = p.getPhoneNumbers();
for (int i = 0; i < phoneNumbers.length; i++) {
if (!isValidPhoneNumber(phoneNumbers[i].phNo))
throw new IllegalArgumentException("Phone numbers should be 10 digits");
}
if (!isValidDate(d.dateOfBirth)) {
throw new IllegalArgumentException("Invalid DOB");
}
}
public static void main(String[] args) throws IllegalArgumentException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter first name: ");
String firstName = sc.next();
System.out.println("Enter Last name: ");
String lastName = sc.next();
System.out.println("Enter email : ");
String email = sc.next();
System.out.println("Enter Password : ");
String password = sc.next();
System.out.println("Enter total phone numbers");
int n = sc.nextInt();
sc.nextLine();
IndianPhoneNumber[] phoneNumbers = new IndianPhoneNumber[n];
System.out.println("Enter " + n + " phone numbers");
for (int i = 0; i < n; i++) {
phoneNumbers[i] = new IndianPhoneNumber(sc.next());
}
System.out.println("Enter DOB ");
Date date = new SimpleDateFormat("dd-MM-yyyy").parse(sc.next());
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd E");
System.out.println("d.format(dateOfBirth) ");
PersonDetails person = new PersonDetails(firstName, lastName, email, password, phoneNumbers, date);
try {
validate(person);
String fullName = person.getFullName();
System.out.println("Full name: " + fullName);
System.out.println(person);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
} |
Beta Was this translation helpful? Give feedback.
-
|
`package Exception_Handling; } } } public Date getDateOfBirth() { } } User user=new User(email,password,firstName,lastName,phoneNumber,date); try{ } }` |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
`import java.util.Scanner; } class IndianPhoneNumber extends PhoneNumber { class User{ } public class UserDetails { } |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
UPDATED : : |
Beta Was this translation helpful? Give feedback.
-
import java.util.Scanner; class PhoneNumber { } class Person { } public class FileOperations { } |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Updated |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
`import java.util.; class PhoneNumber { } class IndianPhoneNumber extends PhoneNumber { class User { } class InvalidInputException extends Exception { class Validate { } public class DetailsCode { } |
Beta Was this translation helpful? Give feedback.
-
|
class PhoneNumber { PhoneNumber(String phNo) { @OverRide class UserDetails { public UserDetails(String email, String password, String firstName, String lastName, String[] phoneNumbers) { public String getEmail() { public void setEmail(String email) { public String getPassword() { public void setPassword(String password) { public String getFirstName() { public void setFirstName(String firstName) { public String getLastName() { public void setLastName(String lastName) { public PhoneNumber[] getPhoneNumbers() { public void setPhoneNumbers(String[] phoneNumbers) { class User extends UserDetails { public boolean isAlphabet(String str) { public boolean passwordCheck(String str) { public boolean emailCheck(String str) { public boolean phoneNumberCheck(PhoneNumber[] phoneNumbers) { } public class ExceptionHandelingTask2 { |
Beta Was this translation helpful? Give feedback.
-
import java.util.*;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
class Inputs {
String firstName;
String lastName;
String email;
String password;
IndianPhoneNumber[] phoneNumber;
String dob;
public Inputs(String firstName, String lastName, String email, String password, IndianPhoneNumber[] phoneNumber,
String dob) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.phoneNumber = phoneNumber;
this.dob = dob;
}
boolean isValidAlphabet(String s) {
for (int i = 0; i < s.length(); i++) {
if (!(Character.isLetter(s.charAt(i))))
return false;
}
return true;
}
boolean isValidPhoneNumber(String ph) {
int n = ph.length();
if (n < 10)
return false;
for (int i = 0; i < n; i++) {
if (!(ph.charAt(i) >= '0' && ph.charAt(i) <= '9'))
return false;
}
return true;
}
boolean isValidEmail(String email) {
int op = 0;
int s = 0;
for (int i = 0; i < email.length(); i++) {
if (email.charAt(i) == ' ')
return false;
if (email.charAt(i) == '@')
s++;
if (email.charAt(i) == '.')
op++;
}
return (op > 0 && s > 0);
}
boolean isValidPassword(String pass) {
if (!(pass.length() >= 8 && pass.length() <= 16)) {
return false;
}
for (int i = 0; i < pass.length(); i++) {
if (pass.charAt(i) >= '0' && pass.charAt(i) <= '9') {
return true;
}
}
return false;
}
boolean isValidDob(String Dob) {
int date = Integer.parseInt(Dob.substring(0, 2));
int month = Integer.parseInt(Dob.substring(3, 5));
int year = Integer.parseInt(Dob.substring(6, 10));
if (date > 0 && date < 31) {
if (month > 0 && month < 13) {
return (year > 1900 && year <= 2019);
} else
return false;
}
return false;
}
void validate() throws IllegalArgumentException {
if (!(isValidAlphabet(this.firstName) && isValidAlphabet(this.lastName))) {
throw new IllegalArgumentException("Please Enter only alphabetic characters in name.");
}
if (!isValidPassword(password)) {
throw new IllegalArgumentException(
"The length of password should be between 8 to 16 charcaters and it must include atleast one digit");
}
if (!isValidDob(dob)) {
throw new IllegalArgumentException("The date of birth is invalid.");
}
if (!isValidEmail(email)) {
throw new IllegalArgumentException("Email must contain @ and '.' Example: abc@gmail.com");
}
IndianPhoneNumber[] phone = this.phoneNumber;
for (int i = 0; i < phone.length; i++) {
if (!isValidPhoneNumber(phone[i].phNo))
throw new IllegalArgumentException("Phone nnumber must contain only digits and should be of 10 digits");
}
}
@Override
public String toString() {
return "Inputs [email=" + email + ", firstName=" + firstName + ", lastName=" + lastName + ", Date of Birth="
+ dob
+ "], password=" + password + ", phoneNumber=" + Arrays.toString(phoneNumber) + "]";
}
}
public class Validate {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your firstname: ");
String firstName = sc.nextLine();
System.out.println("Enter your lastname: ");
String lastName = sc.nextLine();
System.out.println("Enter the Date of Birth: ");
String dob = sc.nextLine();
System.out.println("Enter your email: ");
String email = sc.nextLine();
System.out.println("Enter your password: ");
String password = sc.nextLine();
System.out.println("Enter number of phonenumbers: ");
int n = sc.nextInt();
sc.nextLine();
IndianPhoneNumber[] phoneNumbers = new IndianPhoneNumber[n];
for (int i = 0; i < n; i++) {
System.out.println("Enter the " + i + " Phone number");
phoneNumbers[i] = new IndianPhoneNumber(sc.next());
}
Inputs obj = new Inputs(firstName, lastName, email, password, phoneNumbers, dob);
try {
obj.validate();
System.out.println(obj.toString());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
sc.close();
}
} |
Beta Was this translation helpful? Give feedback.
-
import java.util.Scanner;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
class User
{
String email;
String password;
String firstName;
String lastName;
PhoneNumber phoneNumber;
public User(String email, String password, String firstName, String lastName,PhoneNumber phoneNumber) {
this.email = email;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.phoneNumber = phoneNumber;
}
void validate(User user) throws IllegalArgumentException{
if(validAlphabets(user.firstName))
throw new IllegalArgumentException("First Name Should only contain alphabets");
if(validAlphabets(user.lastName))
throw new IllegalArgumentException("Last Name Should only contain alphabets");
if(!(validPassword(user.password)))
throw new IllegalArgumentException("Password Should contain 8-16 characters and atleast 1 digit");
if(!(validEmail(user.email)))
throw new IllegalArgumentException("Email Should contain @ and . in it");
}
boolean validPhoneNumber(String phno){
int n=phno.length();
if(n<10)
return false;
for(int i=0;i<n;i++){
if(!(phno.charAt(i)>='0'&&phno.charAt(i)<='9'))
return false;
}
return true;
}
boolean validEmail(String email) {
int dot=0,sym=0,n=email.length();
for(int i=0;i<n;i++){
if(email.charAt(i)=='@')
sym=1;
if(email.charAt(i)=='.')
dot=1;
if(email.charAt(i)==' ')
return false;
}
return (sym==1 && dot==1);
}
boolean validPassword(String pswd) {
int n = pswd.length();
if((n<8)||(n>16))
return false;
else{
int c=0;
for(int i=0;i<n;i++){
if(pswd.charAt(i)>='0' && pswd.charAt(i)<='9')
c=1;
}
if(c==1)
return true;
}
return false;
}
boolean validAlphabets(String str) {
int n = str.toLowerCase().length();
for(int i=0;i<n;i++){
if(!(str.charAt(i)>='a' && str.charAt(i)<='z'))
return false;
}
return true;
}
}
public class UserDetails {
public static void main(String[] args) {
String firstName,lastName,password,email,phno,code;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter User Details");
System.out.println("Enter User First Name:");
firstName = scanner.next();
System.out.println("Enter User Last Name:");
lastName = scanner.next();
System.out.println("Enter User Email:");
email = scanner.next();
System.out.println("Enter User Password:");
password = scanner.next();
System.out.println("Phone Number :");
System.out.println("Enter Country code :");
code = scanner.next();
System.out.println("Enter Phone Number :");
phno = scanner.next();
PhoneNumber phoneNumber = new PhoneNumber(code,phno);
User user = new User(email,password,firstName,lastName,phoneNumber);
System.out.println("Enter n :");
int n = scanner.nextInt();
IndianPhoneNumber[] indianPhoneNumbers = new IndianPhoneNumber[n];
System.out.println("Enter the numbers :");
for(int i=0;i<n;i++){
String phnum=scanner.next();
indianPhoneNumbers[i] = new IndianPhoneNumber(phnum);
}
try{
user.validate(user);
}
catch(IllegalArgumentException e){
System.out.println(e);
}
String fullName = user.firstName+user.lastName;
System.out.println(fullName);
for(int i=0;i<n;i++)
System.out.println(indianPhoneNumbers[i]);
}
}
|
Beta Was this translation helpful? Give feedback.
-
javaimport java.util.Scanner; } class IndianPhoneNumber extends PhoneNumber { class Triplet { } class Pair { } class DigPair { } class Info { } public class Exceptions3 { } |
Beta Was this translation helpful? Give feedback.
-
|
class PhoneNumber { } class UserDetails { } class User extends UserDetails { } public class ExceptionHandelingTask2 { |
Beta Was this translation helpful? Give feedback.
-
package com.validation;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Main{
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) throws ParseException {
System.out.println("Enter the first name:");
String firstName = sc.nextLine();
System.out.println("Enter the last name:");
String lastName = sc.nextLine();
System.out.println("Enter the email:");
String email = sc.nextLine();
System.out.println("Enter the Password:");
String password = sc.nextLine();
System.out.println("Enter dob [dd-mm-yyyy]:");
String dateOfBirth = sc.nextLine();
System.out.println("how many phone number you want to add:");
int n = Integer.parseInt(sc.nextLine());
String[] numbers = new String[n];
System.out.println("Enter the phone numbers:");
for(int i = 0; i < n; i++) {
numbers[i] = sc.nextLine();
}
User userObj = new User(email,password, firstName, lastName, dateOfBirth,numbers);
try{
userObj.validate();
printFullName(userObj.getFirstName(), userObj.getLastName());
printPhoneNumbers(userObj.getPhoneNumbers());
printDateofBirthWithDate(userObj.getDateOfBirth());
}
catch(IllegalArgumentException e){
System.out.println(e);
}
}
public static void printFullName(String firstName, String lastName) {
System.out.println("FullName :" + firstName + " " + lastName);
}
public static void printPhoneNumbers(String[] numbers) {
for(int i = 0; i < numbers.length; i++) {
IndianPhoneNumber IndianPhone = new IndianPhoneNumber(numbers[i]);
System.out.println("Phone :" + IndianPhone);
}
}
public static void printDateofBirthWithDate(String dateOfBirth) throws ParseException {
Date date = new SimpleDateFormat("dd-MM-yyyy").parse(dateOfBirth);
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd E");
System.out.print("Date :");
System.out.println(d.format(date) );
}
}package com.validation;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class User {
String email;
String password;
String firstName;
String lastName;
String dateOfBirth;
String[] phoneNumbers;
public User(String email, String password, String firstName, String lastName, String dateOfBirth,
String[] phoneNumbers) {
super();
this.email = email;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.dateOfBirth = dateOfBirth;
this.phoneNumbers = phoneNumbers;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public String[] getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(String[] phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
@Override
public String toString() {
return "User [email=" + email + ", password=" + password + ", firstName=" + firstName + ", lastName=" + lastName
+ ", dateOfBirth=" + dateOfBirth + ", phoneNumbers=" + Arrays.toString(phoneNumbers) + "]";
}
//validation
void validate() throws IllegalArgumentException{
if(!isFirstAndLastNameValid(this.firstName, this.lastName)) {
throw new IllegalArgumentException("Please Enter only alphabetic characters in name.");
}
if(!isValidPassword(this.password)) {
throw new IllegalArgumentException(
"The length of password should be between 8 to 16 charcaters and it must include atleast one digit");
}
if(! isValidEmail(this.email)) {
throw new IllegalArgumentException("Email must contain @ and '.' Example: def@gmail.com");
}
if(! isValidPhoneNumber(this.phoneNumbers)) {
throw new IllegalArgumentException("Phone nnumber must contain only digits and should be of 10 digits");
}
if(! isValidDate(this.dateOfBirth)) {
throw new IllegalArgumentException("1 <= month <= 1 && 1 <= date <= 31"
+ "1900 <= year <= 2009 (check if the user is at least 13 years old)");
}
}
//validate firstName and lastName
boolean isFirstAndLastNameValid(String firstName, String lastName) {
boolean res1 = firstName.matches("[a-zA-Z]+");
boolean res2 = lastName.matches("[a-zA-Z]+");
return res1&&res2;
}
//validate password
boolean isValidPassword(String password) {
String regex = "^(?=.*[0-9])"
+ "(?=.*[a-z])(?=.*[A-Z])"
+ "(?=\\S+$).{8,16}$";
Pattern p = Pattern.compile(regex);
if (password == null) {
return false;
}
Matcher m = p.matcher(password);
return m.matches();
}
boolean isValidEmail(String email) {
String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\."+
"[a-zA-Z0-9_+&*-]+)*@" +
"(?:[a-zA-Z0-9-]+\\.)+[a-z" +
"A-Z]{2,7}$";
Pattern pat = Pattern.compile(emailRegex);
if (email == null)
return false;
return pat.matcher(email).matches();
}
//check numbers for valid
boolean isValidPhoneNumber(String[] numbers) {
for(int i = 0; i < numbers.length; i++) {
if(! isvalid(numbers[i])) {
return false;
}
}
return true;
}
boolean isvalid(String num) {
Pattern p = Pattern.compile("^\\d{10}$");
Matcher m = p.matcher(num);
return (m.matches());
}
boolean isValidDate(String date) {
String[] dayMonthYear = date.split("-", 3);
int day = Integer.parseInt(dayMonthYear[0]);
int month = Integer.parseInt(dayMonthYear[1]);
int year = Integer.parseInt(dayMonthYear[2]);
return ((month >= 1 || month <= 12) && (day>=1 || day <= 31) && (year >= 1900 || year <= 2009));
}
}package com.validation;
public class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
package com.validation;
public class IndianPhoneNumber extends PhoneNumber{
final static String countryCode = "+91";
public IndianPhoneNumber(String num) {
super(countryCode, num);
}
} |
Beta Was this translation helpful? Give feedback.
-
package com.lingu;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.Scanner;
public class Persondetails {
String password;
String firstName;
String lastName;
String email;
Date date;
IndianPhoneNumber[] phoneNumbers;
Persondetails(String email,String password,String firstName,String lastName, Date date,IndianPhoneNumber[] phoneNumbers)
{
this.email=email;
this.password=password;
this.firstName=firstName;
this.lastName=lastName;
this.date=date;
this.phoneNumbers=phoneNumbers;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFullName() {
return this.firstName + this.lastName;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public IndianPhoneNumber[] getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(IndianPhoneNumber[] phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
static boolean isvalidate(String f)
{
boolean flag=true;
for(int i=0;i<f.length();i++)
{
if(!Character.isLetter(f.charAt(i)))
flag=false;
}
return flag;
}
static boolean isvalidatepassword(String f)
{
boolean flag=false;
if((f.length()>=8 && f.length()<=16))
{
for(int i=0;i<f.length();i++)
{
if(Character.isDigit(f.charAt(i)))
{
flag=true;
}
else {
flag=false;
}
}
}
else {
flag=false;
}
if(flag==false)
{
return false;
}
return true;
}
static boolean isvalidateemail(String f)
{
boolean flag=false;
for(int i=0;i<f.length();i++)
{
if((f.charAt(i)=='@' && f.charAt(i)=='.'))
{
if(Character.isWhitespace(f.charAt(i)))
flag=true;
else {
flag=false;
}
}
else {
flag=false;
}
}
return flag;
}
static boolean isvalidatephonenumber(String f)
{
boolean flag=true;
if(f.length()==10)
{
for(int i=0;i<f.length();i++)
{
if(!Character.isDigit(f.charAt(i)))
{
flag=false;
}
}
}
else {
flag=false;
}
if(!flag)
return false;
return true;
}
static boolean isvalidatedate(Date d)
{
Calendar cal = Calendar.getInstance();
cal.setTime(d);
return ((cal.get(Calendar.MONTH)>=1 && cal.get(Calendar.MONTH)<=12)
&& (cal.get(Calendar.YEAR)>=1900 && cal.get(Calendar.YEAR)<=2009)
&& (cal.get(Calendar.DATE)>=1 && cal.get(Calendar.DATE)<=31));
}
static void validate(Persondetails p)throws IllegalArgumentException
{
if(isvalidate(p.getFirstName()))
{
throw new IllegalArgumentException("First name can only contain alphabets.");
}
if(isvalidate(p.getLastName()))
{
throw new IllegalArgumentException("Last name can only contain alphabets.");
}
if(isvalidatepassword(p.getPassword()))
{
throw new IllegalArgumentException("password is between 8 and 16 characters, and also contains at least one digit.");
}
if(isvalidateemail(p.getEmail()))
{
throw new IllegalArgumentException("email contains an at-symbol (@) and a dot (.) or not. There should not be any spaces in the email.");
}
IndianPhoneNumber[] phoneNumbers=p.getPhoneNumbers();
for(int i=0;i<phoneNumbers.length;i++)
{
if(isvalidatephonenumber(phoneNumbers[i].phNo))
{
throw new IllegalArgumentException("phone numbers contain only digits, and are ten-digit long.");
}
}
if(isvalidatedate(p.getDate()))
{
throw new IllegalArgumentException("1 <= month <= 12\r\n"
+ "1 <= date <= 31\r\n"
+ "1900 <= year <= 2009");
}
}
public static void main(String[] args) throws ParseException {
Scanner s=new Scanner(System.in);
System.out.println("Enter the firstname");
String firstName=s.next();
System.out.println("Enter the lastname");
String lastName=s.next();
System.out.println("Enter the email");
String email=s.next();
System.out.println("Enter the password");
String password=s.next();
System.out.println("Enter total phone numbers");
int n=s.nextInt();
IndianPhoneNumber[] phoneNumbers = new IndianPhoneNumber[n];
for(int i=0;i<n;i++)
{
phoneNumbers[i]= new IndianPhoneNumber(s.nextLine(), s.nextLine());
}
System.out.println("Enter DOB ");
//String s1=1998-01-07 wednesday);
String s1=s.nextLine();
Date dateformat = new SimpleDateFormat("yyyy-MM-dd E").parse(s1);
System.out.println(dateformat);
Persondetails p= new Persondetails(firstName,lastName,email,password,dateformat,phoneNumbers);
try {
validate(p);
System.out.println("FULL NAME IS " +p.getFullName());
} catch (Exception e) {
System.out.println(e);
}
}
@Override
public String toString() {
return "Persondetails [password=" + password + ", firstName=" + firstName + ", lastName=" + lastName
+ ", email=" + email + ", date=" + date + ", phoneNumbers=" + Arrays.toString(phoneNumbers) + "]";
}
}
class IndianPhoneNumber extends PhoneNumber{
IndianPhoneNumber(String countryCode, String phNo) {
super(countryCode, phNo);
}
}
package com.lingu;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
} |
Beta Was this translation helpful? Give feedback.
-
codepackage test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
class PersonDetails {
String firstName;
String lastName;
String email;
String password;
IndianPhoneNumber[] phoneNumbers;
Date dateOfBirth;
public PersonDetails(String firstName, String lastName, String email, String password,
IndianPhoneNumber[] phoneNumbers, Date dateOfBirth ) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.phoneNumbers = phoneNumbers;
this.dateOfBirth = dateOfBirth;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public String getFullName() {
return firstName + " " + lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public IndianPhoneNumber[] getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(IndianPhoneNumber[] phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
@Override
public String toString() {
return "PersonDetails [email=" + email + ", firstName=" + firstName + ", lastName=" + lastName + ", password="
+ password + ", phoneNumbers=" + Arrays.toString(phoneNumbers) + "]";
}
}
public class Validation {
static boolean isAlphabet(String s) {
for (int i = 0; i < s.length(); i++) {
if (!(Character.isLetter(s.charAt(i))))
return false;
}
return true;
}
static boolean isValidPhoneNumber(String phone) {
if (phone.length() != 10)
return false;
for (int i = 0; i < phone.length(); i++) {
if (!(Character.isDigit(phone.charAt(i))))
return false;
}
return true;
}
static boolean isValidEmail(String email) {
int dot = 0;
int at = 0;
for (int i = 0; i < email.length(); i++) {
if (email.charAt(i) == ' ')
return false;
if (email.charAt(i) == '@')
at++;
if (email.charAt(i) == '.')
dot++;
}
return (dot > 0 && at > 0);
}
static boolean isValidPassword(String password) {
if (password.length() < 8 || password.length() > 16)
return false;
int digits = 0;
for (int i = 0; i < password.length(); i++) {
if (Character.isDigit(password.charAt(i)))
digits++;
}
return digits > 0;
}
static boolean isValidDate(Date dateOfBirth) {
Calendar cal = Calendar.getInstance();
cal.setTime(dateOfBirth);
return ((cal.get(Calendar.MONTH) >= 1 || cal.get(Calendar.MONTH) <= 12)
&& (cal.get(Calendar.DATE) >= 1 || cal.get(Calendar.DATE) <= 31)
&& (cal.get(Calendar.YEAR) >= 1900 || cal.get(Calendar.YEAR) <= 2009));
}
static void validate(PersonDetails p) throws IllegalArgumentException {
if (!isAlphabet(p.getFirstName()))
throw new IllegalArgumentException("First name can only contain alphabets.");
if (!isAlphabet(p.getLastName()))
throw new IllegalArgumentException("Last name can only have alphabets.");
if (!isValidEmail(p.getEmail()))
throw new IllegalArgumentException(
"Email should contain an (.) and an (@) and should not have any spaces in between");
if (!isValidPassword(p.getPassword()))
throw new IllegalArgumentException(
"Password should be between 8 an 16 characters and should contain atleast one digit");
IndianPhoneNumber[] phoneNumbers = p.getPhoneNumbers();
for (int i = 0; i < phoneNumbers.length; i++) {
if (!isValidPhoneNumber(phoneNumbers[i].phNo))
throw new IllegalArgumentException("Phone numbers should be 10 digits");
}
if (!isValidDate(p.dateOfBirth)) {
throw new IllegalArgumentException("Invalid DOB");
}
}
public static void main(String[] args) throws IllegalArgumentException,ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter first name: ");
String firstName = sc.next();
System.out.println("Enter Last name: ");
String lastName = sc.next();
System.out.println("Enter email : ");
String email = sc.next();
System.out.println("Enter Password : ");
String password = sc.next();
System.out.println("Enter total phone numbers");
int n = sc.nextInt();
sc.nextLine();
IndianPhoneNumber[] phoneNumbers = new IndianPhoneNumber[n];
System.out.println("Enter " + n + " phone numbers");
for (int i = 0; i < n; i++) {
phoneNumbers[i] = new IndianPhoneNumber(sc.next());
}
System.out.println("Enter DOB ");
Date dateOfBirth = new SimpleDateFormat("dd-MM-yyyy").parse(sc.next());
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd E");
System.out.println(d.format(dateOfBirth) );
PersonDetails person = new PersonDetails(firstName, lastName, email, password, phoneNumbers, dateOfBirth);
try {
validate(person);
String fullName = person.getFullName();
System.out.println("Full name: " + fullName);
System.out.println(person);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
sc.close();
}
}
} |
Beta Was this translation helpful? Give feedback.
-
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
class Users {
String firstName;
String lastName;
String email;
String password;
Date dateOfBirth;
IndianPhoneNumber[] phoneNumbers;
public Users(String firstName, String lastName, String email, String password, Date dateOfBirth,
IndianPhoneNumber[] phoneNumbers) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.dateOfBirth = dateOfBirth;
this.phoneNumbers = phoneNumbers;
}
public static boolean isValidName(String name) {
return (name.matches("^[a-z][A-Z]*$"));
}
public static boolean isValidEmail(String email) {
return (email.matches("^(.+)@(\\S+)$"));
}
public static boolean isValidPhoneNo(String no) {
return (no.matches("\\d{10}"));
}
public static boolean isValidPassword(String pass) {
return (pass.matches("^(?=.*[0-9])(?=\\S+$).{8,16}$"));
}
public static boolean isValidDateOfBirth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return ((cal.get(Calendar.MONTH) >= 1 || cal.get(Calendar.MONTH) <= 12)
&& (cal.get(Calendar.DATE) >= 1 || cal.get(Calendar.DATE) <= 31)
&& (cal.get(Calendar.YEAR) >= 1900 || cal.get(Calendar.YEAR) <= 2009));
}
public void validate() throws IllegalArgumentException {
if (!isValidName(this.firstName)) {
throw new IllegalArgumentException("First name must only contain letters");
}
if (!isValidName(this.lastName)) {
throw new IllegalArgumentException("Last name must only contain letters");
}
if (!isValidEmail(this.email)) {
throw new IllegalArgumentException("Email must contain @ and . symbols");
}
for (int i = 0; i < this.phoneNumbers.length; i++) {
if (!isValidPhoneNo(this.phoneNumbers[i].phNo)) {
throw new IllegalArgumentException("Phone No must be of 10 digits");
}
}
if (!isValidPassword(this.password)) {
throw new IllegalArgumentException(
"Password must be minimum of 8 characters and maximum of 16 characters with atleast 1 digit");
}
if (!isValidDateOfBirth(this.dateOfBirth)) {
throw new IllegalArgumentException("Invalid DOB");
}
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public IndianPhoneNumber[] getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(IndianPhoneNumber[] phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
@Override
public String toString() {
SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd E");
return String.format("Full Name: %s %nEmail id: %s %nDate Of Birth: %s %nPhone number: %s",
(this.firstName + " " + this.lastName),
this.email, form.format(this.dateOfBirth), Arrays.toString(this.phoneNumbers))
.replaceAll("\\[|\\]", "");
}
}
public class Validation {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Enter first Name: ");
String fName = s.next();
System.out.println("Enter last Name: ");
String lName = s.next();
System.out.println("Enter emailId: ");
String email = s.next();
System.out.println("Enter password: ");
String password = s.next();
System.out.println("Enter your Date Of Birth (YYYY-MM-DD): ");
Date date = null;
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(s.next());
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("How many phone numbers you have: ");
int n = s.nextInt();
IndianPhoneNumber[] phoneNumbers = new IndianPhoneNumber[n];
for (int i = 0; i < n; i++) {
System.out.println("Enter phone Number: ");
phoneNumbers[i] = new IndianPhoneNumber(s.next());
}
Users user = new Users(fName, lName, email, password, date, phoneNumbers);
user.validate();
// try {
// user.validate();
// } catch (IllegalArgumentException e) {
// System.out.println(e.getMessage());
// }
System.out.println(user);
s.close();
}
} |
Beta Was this translation helpful? Give feedback.
-
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
class Users {
String firstName;
String lastName;
String email;
String password;
Date dateOfBirth;
IndianPhoneNumber[] phoneNumbers;
public Users(String firstName, String lastName, String email, String password, Date dateOfBirth,
IndianPhoneNumber[] phoneNumbers) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.dateOfBirth = dateOfBirth;
this.phoneNumbers = phoneNumbers;
}
public static boolean isValidName(String name) {
return (name.matches("^[a-z][A-Z]*$"));
}
public static boolean isValidEmail(String email) {
return (email.matches("^(.+)@(\\S+)$"));
}
public static boolean isValidPhoneNo(String no) {
return (no.matches("\\d{10}"));
}
public static boolean isValidPassword(String pass) {
return (pass.matches("^(?=.*[0-9])(?=\\S+$).{8,16}$"));
}
public static boolean isValidDateOfBirth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return ((cal.get(Calendar.MONTH) >= 1 || cal.get(Calendar.MONTH) <= 12)
&& (cal.get(Calendar.DATE) >= 1 || cal.get(Calendar.DATE) <= 31)
&& (cal.get(Calendar.YEAR) >= 1900 || cal.get(Calendar.YEAR) <= 2009));
}
public void validate() throws IllegalArgumentException {
if (!isValidName(this.firstName)) {
throw new IllegalArgumentException("First name must only contain letters");
}
if (!isValidName(this.lastName)) {
throw new IllegalArgumentException("Last name must only contain letters");
}
if (!isValidEmail(this.email)) {
throw new IllegalArgumentException("Email must contain @ and . symbols");
}
for (int i = 0; i < this.phoneNumbers.length; i++) {
if (!isValidPhoneNo(this.phoneNumbers[i].phNo)) {
throw new IllegalArgumentException("Phone No must be of 10 digits");
}
}
if (!isValidPassword(this.password)) {
throw new IllegalArgumentException(
"Password must be minimum of 8 characters and maximum of 16 characters with atleast 1 digit");
}
if (!isValidDateOfBirth(this.dateOfBirth)) {
throw new IllegalArgumentException("Invalid DOB");
}
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public IndianPhoneNumber[] getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(IndianPhoneNumber[] phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
@Override
public String toString() {
SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd E");
return String.format("Full Name: %s %nEmail id: %s %nDate Of Birth: %s %nPhone number: %s",
(this.firstName + " " + this.lastName),
this.email, form.format(this.dateOfBirth), Arrays.toString(this.phoneNumbers))
.replaceAll("\\[|\\]", "");
}
}
public class Validation {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Enter first Name: ");
String fName = s.next();
System.out.println("Enter last Name: ");
String lName = s.next();
System.out.println("Enter emailId: ");
String email = s.next();
System.out.println("Enter password: ");
String password = s.next();
System.out.println("Enter your Date Of Birth (YYYY-MM-DD): ");
Date date = null;
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(s.next());
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("How many phone numbers you have: ");
int n = s.nextInt();
IndianPhoneNumber[] phoneNumbers = new IndianPhoneNumber[n];
for (int i = 0; i < n; i++) {
System.out.println("Enter phone Number: ");
phoneNumbers[i] = new IndianPhoneNumber(s.next());
}
Users user = new Users(fName, lName, email, password, date, phoneNumbers);
user.validate();
System.out.println(user);
s.close();
}
} |
Beta Was this translation helpful? Give feedback.
-
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
public class UserDetails {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
System.out.print("Enter Email: ");
String email = sc.nextLine();
System.out.print("Enter Password: ");
String password = sc.nextLine();
System.out.print("Enter First Name: ");
String firstName = sc.nextLine();
System.out.print("Enter Last Name: ");
String lastName = sc.nextLine();
System.out.print("Enter Date of Birth (yyyy-MM-dd): ");
String dobString = sc.nextLine();
System.out.print("Enter number of phone numbers: ");
int count = Integer.parseInt(sc.nextLine());
List<String> phoneNumbers = new ArrayList<>();
for (int i = 0; i < count; i++) {
System.out.print("Enter phone number " + (i + 1) + ": ");
phoneNumbers.add(sc.nextLine());
}
validate(firstName, lastName, password, email, dobString, phoneNumbers);
String fullName = firstName + " " + lastName;
IndianPhoneNumber[] phoneArray = phoneNumbers.stream()
.map(IndianPhoneNumber::new)
.toArray(IndianPhoneNumber[]::new);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dob = sdf.parse(dobString);
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd EEE");
String dobFormatted = outputFormat.format(dob);
System.out.println("\n--- User Info ---");
System.out.println("Full Name: " + fullName);
System.out.println("Email: " + email);
System.out.println("Date of Birth: " + dobFormatted);
System.out.println("Phone Numbers:");
for (PhoneNumber pn : phoneArray) {
System.out.println(pn);
}
} catch (IllegalArgumentException | ParseException | InputMismatchException e) {
System.out.println("Validation Error: " + e.getMessage());
} finally {
sc.close();
}
}
public static void validate(String firstName, String lastName, String password, String email,
String dobString, List<String> phoneNumbers) {
if (!firstName.matches("[A-Za-z]+"))
throw new IllegalArgumentException("First name must contain only alphabets.");
if (!lastName.matches("[A-Za-z]+"))
throw new IllegalArgumentException("Last name must contain only alphabets.");
if (password.length() < 8 || password.length() > 16 || !password.matches(".*\\d.*"))
throw new IllegalArgumentException("Password must be 8-16 characters and contain at least one digit.");
if (!email.contains("@") || !email.contains(".") || email.contains(" "))
throw new IllegalArgumentException("Invalid email format.");
for (String number : phoneNumbers) {
if (!number.matches("\\d{10}"))
throw new IllegalArgumentException("Phone number must be exactly 10 digits.");
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
try {
Date dob = sdf.parse(dobString);
Calendar cal = Calendar.getInstance();
cal.setTime(dob);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
if (month < 1 || month > 12)
throw new IllegalArgumentException("Month must be between 1 and 12.");
if (day < 1 || day > 31)
throw new IllegalArgumentException("Day must be between 1 and 31.");
if (year < 1900 || year > 2009)
throw new IllegalArgumentException("Year must be between 1900 and 2009.");
} catch (ParseException e) {
throw new IllegalArgumentException("DOB must be a valid date in yyyy-MM-dd format.");
}
}
} |
Beta Was this translation helpful? Give feedback.
-
|
PRASETHA N package com.practice.problems.java;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class ExceptionHandling {
public static void main(String[] args) {
try {
UserRegistrationAndValidation user = new UserRegistrationAndValidation("ravi.mohan@google.com", "password1",
"Ravi", "Mohan", "2005-08-15", List.of("9111111111", "9123456789"));
user.validate();
System.out.println("User registration data is valid.");
System.out.println("Full Name: " + user.getFullName());
System.out.println("Date of Birth: " + user.getDateOfBirth());
System.out.println("Phone Numbers:");
for (IndianPhoneNumber num : user.getIndianPhoneNumbers()) {
System.out.println(num);
}
} catch (IllegalArgumentException e) {
System.err.println("Error: " + e.getMessage());
}
}
}
class PhoneNumber {
String countryCode;
String phNo;
PhoneNumber(String countryCode, String phNo) {
this.countryCode = countryCode;
this.phNo = phNo;
}
@Override
public String toString() {
return countryCode + "-" + phNo;
}
}
class IndianPhoneNumber extends PhoneNumber {
IndianPhoneNumber(String phNo) {
super("+91", phNo);
}
}
class UserRegistrationAndValidation {
private String email;
private String password;
private String firstName;
private String lastName;
private String dob;
private List<String> phoneNumbers;
public UserRegistrationAndValidation(String email, String password, String firstName, String lastName, String dob,
List<String> phoneNumbers) {
this.email = email;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.dob = dob;
this.phoneNumbers = phoneNumbers;
}
public String getFullName() {
return firstName + " " + lastName;
}
public Date getDateOfBirth() {
try {
return new SimpleDateFormat("yyyy-MM-dd").parse(dob);
} catch (ParseException e) {
return null;
}
}
public IndianPhoneNumber[] getIndianPhoneNumbers() {
IndianPhoneNumber[] arr = new IndianPhoneNumber[phoneNumbers.size()];
for (int i = 0; i < phoneNumbers.size(); i++) {
arr[i] = new IndianPhoneNumber(phoneNumbers.get(i));
}
return arr;
}
private boolean isAlphabetic(String name) {
return name.matches("[a-zA-Z]+");
}
private boolean isValidEmail(String email) {
return email.contains("@") || !email.contains(".") || email.contains(" ");
}
private boolean isValidPassword(String password) {
if (password.length() < 8 || password.length() > 16) {
return false;
}
boolean hasDigit = false;
for (char ch : password.toCharArray()) {
if (Character.isDigit(ch)) {
hasDigit = true;
break;
}
}
return hasDigit;
}
private boolean isValidPhoneNumber(String phone) {
return phone.matches("\\d{10}");
}
private boolean isValidDOB(String date) {
String[] parts = date.split("-");
if (parts.length != 3)
return false;
if (!parts[0].matches("\\d{4}") || !parts[1].matches("\\d{1,2}") || !parts[2].matches("\\d{1,2}"))
return false;
int year = Integer.parseInt(parts[0]);
int month = Integer.parseInt(parts[1]);
int day = Integer.parseInt(parts[2]);
if (year < 1900 || year > 2009)
return false;
if (month < 1 || month > 12)
return false;
if (day < 1 || day > 31)
return false;
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
if ((currentYear - year) < 13)
return false;
return true;
}
public void validate() {
if (!isAlphabetic(firstName)) {
throw new IllegalArgumentException("First name must contain only letters.");
}
if (!isAlphabetic(lastName)) {
throw new IllegalArgumentException("Last name must contain only letters.");
}
if (!isValidEmail(email)) {
throw new IllegalArgumentException("Email must contain '@', '.' and no spaces.");
}
if (!isValidPassword(password)) {
throw new IllegalArgumentException("Password must be 8-16 characters and contain at least one digit.");
}
for (String numberStr : phoneNumbers) {
IndianPhoneNumber number = new IndianPhoneNumber(numberStr);
if (!isValidPhoneNumber(number.phNo)) {
throw new IllegalArgumentException("Phone number must be exactly 10 digits: " + number.phNo);
}
}
if (!isValidDOB(dob)) {
throw new IllegalArgumentException("DOB must be between 1900 and 2009 and age must be at least 13.");
}
}
} |
Beta Was this translation helpful? Give feedback.
-
|
Bhavana import java.text.ParseException; class PhoneNumber { } class IndianPhoneNumber extends PhoneNumber { } public class UserRegistration { } |
Beta Was this translation helpful? Give feedback.
-
|
Lohith R package org.example; import java.text.ParseException; public class CitadelRestoration { } class Validate { int a=0; if(a<0&&b<0){ } class UserDetails{ } class PhoneNumber { } class IndianPhoneNumber extends PhoneNumber{ } |
Beta Was this translation helpful? Give feedback.
-
import java.text.ParseException; class PhoneNumber { } class IndianPhoneNumber extends PhoneNumber { public class Main { } |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
WAP to take the following as inputs from the user:
Display DOB in the given format. Example - 2022-02-23 Wed
Before proceeding further, validate the following by calling validate() function:
In case any validation fails, raise an IllegalArgumentException (with a valid custom message) exception for the same. Handle any exceptions raised in the program.
After the inputs have been validated, do the following:
Display the detailed info of the user.
IndianPhoneNumber class extends the following class:
Beta Was this translation helpful? Give feedback.
All reactions