因此,首先的問題如下: 編寫提示用戶輸入格式爲DDD-DD-DDDD,其中d是一個數字一個社會安全號碼的程序。你的程序應該檢查輸入是否有效。下面是樣品運行:如下關於else語句(JAVA)
Enter a SSN: 23-23-5435
23-23-5435 is an invalid Social Security Number.
我的代碼:
import java.util.Scanner;
public class SSN {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter a Social Security Number in the format DDD-DD-DDDD: ");
String ssn = input.nextLine();
boolean correct = true;
if (ssn.length() != 11) {
correct = false;
} else {
if (!('0' <= ssn.charAt(0) && ssn.charAt(0) <= '9')) {
correct = false;
}
if (!('0' <= ssn.charAt(1) && ssn.charAt(1) <= '9')) {
correct = false;
}
if (!('0' <= ssn.charAt(2) && ssn.charAt(2) <= '9')) {
correct = false;
}
if (ssn.charAt(3) != '-') {
correct = false;
}
if (!('0' <= ssn.charAt(4) && ssn.charAt(4) <= '9')) {
correct = false;
}
if (!('0' <= ssn.charAt(5) && ssn.charAt(5) <= '9')) {
correct = false;
}
if (ssn.charAt(6) != '-') {
correct = false;
}
if (!('0' <= ssn.charAt(7) && ssn.charAt(7) <= '9')) {
correct = false;
}
if (!('0' <= ssn.charAt(8) && ssn.charAt(8) <= '9')) {
correct = false;
}
if (!('0' <= ssn.charAt(9) && ssn.charAt(9) <= '9')) {
correct = false;
}
if (!('0' <= ssn.charAt(10) && ssn.charAt(10) <= '9')) {
correct = false;
}
}
if (correct == true) {
System.out.println(ssn + " is a valid Social Security Number.");
} else {
System.out.println(ssn + " is an ivalid Social Security Number.");
}
}
}
這是問我的professer後一個正確的答案,雖然
Enter a SSN: 232-23-5435
232-23-5435 is a valid Social Security Number.
另一項測試。
不過,我還是不明白,爲什麼我需要的else{}
的一堆if語句之間。
如果我參加了else{}
走,它適用於正確的核潛艇,但是當我輸入一些無效的,返回:
Please enter a Social Security Number in the format DDD-DD-DDDD: sd
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 2
at java.lang.String.charAt(Unknown Source)
at SSN.main(SSN.java:22)
出了什麼事?爲什麼我需要else
?不是程序只是檢查每個if語句,並通過檢查correct
是否正確爲假來輸出結果?
我的意思是,即使沒有其他人,即使有更多的計算,但它不應該工作一樣?
我很困惑出了什麼問題,請幫忙,謝謝!
。使用正則表達式並查看其他if語句 – Li357
如果使用循環,會更容易:在循環內部,檢查是否在位置3或6,並使用它來決定是否查找「-'或數字。 –
如果不是正則表達式,至少循環字符串,而不是所有那些不美觀,難以維護,重複。 – ChiefTwoPencils