The problem
Write a program that prompts the user to enter a social Security number in the format DDD-DD-DDDD, where D is a digit. Your program should check whether the input is valid.
Breaking it down
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Format: DDD-DD-DDDD");
System.out.print("Enter SSN: ");
String ssn = input.nextLine();
input.close();
boolean isSSNValidFormat = ssn
.matches("(^\d{3}-?\d{2}-?\d{4}$|^XXX-XX-XXXX$)");
if (isSSNValidFormat) {
System.out.println(ssn + " is a valid social security number.");
} else {
System.out.println(ssn + " is a INVALID social security number.");
}
}
Output
Format: DDD-DD-DDDD
Enter SSN: 123-45-1234
123-45-1234 is a valid social security number.
Format: DDD-DD-DDDD
Enter SSN: 232-23223-2323-
232-23223-2323- is a INVALID social security number.