【发布时间】:2015-01-04 06:00:12
【问题描述】:
我有一个用户输入他们的社会安全号码(假号码),我需要它的格式为 111-11-1111,包括破折号。如果用户输入的信息没有破折号,或者超过 999-99-9999,程序会提示用户输入正确的信息。这是我的代码,我该如何解决?另外,我可以在其中的任何部分使用StringBuilder 吗?
import java.util.Scanner;
import java.lang.StringBuilder;
import java.lang.Math;
class TaxReturn
{
public static void main(String[] args)
{
String firstName, mI, lastName;
char M;
char S;
int SSN;
final int SSNLimit = 999999999;
int zip;
int income;
int pets;
int vehicle;
int toaster;
//Start string firstName
Scanner inputDevice = new Scanner(System.in);
System.out.print("First name: ");
firstName = inputDevice.next();
//Start middle name
System.out.print("Middle initial: ");
mI = inputDevice.next();
//Start lastName
System.out.print("Last name: ");
lastName = inputDevice.next();
//Start SSN (Social Security Number)
System.out.print("What is your Social Security Number?: ");
SSN = inputDevice.nextInt();
while(SSN > SSNLimit)
{
System.out.print("Invalid entry, please enter a valid Social Security Number");
System.out.print("\nPlease enter your Social again:");
SSN = inputDevice.nextInt();
}
}
}
【问题讨论】:
-
如果您告诉我们您遇到的错误,这将非常有帮助,这样我们可以更快地为您提供帮助。
-
我没有收到错误消息。在代码的最后一部分,我想知道是否有办法让代码识别社会安全号码中的破折号。其他所有数字。例如 999-99-9999 而不是 999999999
-
利用正则表达式 "^\d{3}-\d{2}-\d{4}$" 检测格式是否正确
-
@Ajinkay Pisal,我对此并不熟悉。有什么地方可以读到吗?它的技术名称是什么?正则表达式?
-
@Nick Wilson docs.oracle.com/javase/tutorial/essential/regex
标签: java loops stringbuilder with-statement