Я новичок в программировании на Java, и в настоящее время мы изучаем строки и символы.Моё лабораторное задание состоит в том, чтобы пользователь вводил свой SSN, а программа определяла, является ли он действительным.Введенный формат должен быть 123-45-6789.Пока что это то, что я сделал: пакет Labs;
import java.util.Scanner;
public class Lab4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a valid SSN");
String ssn = input.nextLine();
System.out.print(ssn);
if (ssn.length() == 11) {
if
}
}
}
Я искал на форумах здесь и нашел несколько разных ответов, но, пробуя их в моем коде, что-то идет не так.Я не ищу никого, чтобы написать это для меня.Какой тип методов я бы использовал, чтобы проверить, что символы 0-2, 4-5, 7-10 содержат число, а символы 3 и 6 содержат -.Очевидно, charAt
и contains
были бы полезны, но я не уверен, как выписать условия, чтобы определить это.
И этот вопрос задали Как определить, находится ли SSN вПравильный формат , который выглядит точно таким же заданием, я предполагаю, что мы используем одну и ту же книгу, на самом деле не дает ответа, хотя она помечена как дубликат, который я не могу найти в исходном вопросе.Мы еще не изучили массивы, поэтому я ищу более простой ответ, хотя я уверен, что пример использования массивов не повредит в дополнение к более простому ответу, так что я смогу развить свои навыки больше.
Редактировать обновление: хотя я уверен, что есть лучший способ сделать это, он работает.
public static void main (String [] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a valid SSN");
String ssn = input.nextLine();
if (ssn.length() == 11 &&
ssn.charAt(0)>='0' && ssn.charAt(0)<='9' &&
ssn.charAt(1)>='0' && ssn.charAt(1)<='9' &&
ssn.charAt(2)>='0' && ssn.charAt(2)<='9' &&
ssn.charAt(4)>='0' && ssn.charAt(4)<='9' &&
ssn.charAt(5)>='0' && ssn.charAt(5)<='9' &&
ssn.charAt(7)>='0' && ssn.charAt(7)<='9' &&
ssn.charAt(8)>='0' && ssn.charAt(8)<='9' &&
ssn.charAt(9)>='0' && ssn.charAt(9)<='9' &&
ssn.charAt(10)>='0' && ssn.charAt(10)<='9' &&
ssn.charAt(3)=='-' && ssn.charAt(6)=='-')
{
System.out.println(ssn + " is a valid social security number");
}
else
System.out.print(ssn + " is not a valid social security number");
input.close();
}
}