This is a classic bug. It's caused by switching between reading tokens with br.nextInt(), br.next(), and others and reading whole lines with br.nextLine().
Most of the Scanner methods read and convert one token. Since there may be multiple tokens on a single line, the Scanner reads input characters up to, but not including
, the first character after the token. When reading from the console, that character is usually the '\n' newline character that ended the input line. If the next call is another token-oriented input, there's no issue since reading a token will automatically skip over spaces, tabs and newlines to get to the start of the next token. If the next method called is a .nextLine(), though, it will see that '\n' at the start of input and return an empty line.
That's why you see your surname prompt skipped. The end of the line with the facultyID was still in the scanner when you called br.nextLine() to read the surname.
The simplest fix is to insert an extra call to br.nextLine() after reading one or more tokens and before reading whole lines. The code for case 2 of your menu code could look like:
System.out.println("Enter Faculty Id");
int id1 = br.nextInt();
System.out.println("FacultyId Already Exist");
System.out.println("Enter Faculty surName");
String surname1= br.nextLine();
System.out.println("Enter Faculty lastName");
String lastName1= br.nextLine();
System.out.println("Enter Faculty Age");
int age1 = br.nextInt();
System.out.println("Enter Faculty Sex :");
String sex1= br.nextLine();
Faculty Faculty=new Faculty(id1, surname1, lastName1, age1, sex1);
For some reason that isn't indenting. I'm new here. That has just one extra br.nextLine inserted. You'll have to do something like this each time you switch from reading tokens to reading lines. Don't put that extra call between existing .nextLine() calls, though. Each .nextLine() reads and discards the '\n' character than ended the line.