假設,在作業提交系統中學生需要錄入提交的 Java 檔名稱及要提交到的郵箱地址,那麼就需要對學生輸入的這些資訊進行校驗,判斷輸入是否有誤。校驗的規則為:錄入的檔名稱必須以“.java”結尾,錄入的郵箱地址中必須包含有“@”符號和“.”符號,且“@”在“.”之前。
在這裡使用 String 類中的 indexOf() 方法、charAt() 方法和 lastIndexOf() 方法來完成此程式。具體實現程式碼如下:
public static void main(String[] args) {
boolean filecon = false; // 判斷檔名是否合法
boolean emailcon = false; // 判斷郵箱地址是否合法
System.out.println("************ 歡迎進入作業提交系統 ************");
Scanner input = new Scanner(System.in);
System.out.println("請輸入要提交的Java檔名稱:");
String name = input.next(); // 獲取輸入的Java檔名
System.out.println("請輸入要提交到的郵箱地址:");
String email = input.next(); // 獲取輸入的郵箱地址
// 檢查輸入的檔名是否合法
int index = name.lastIndexOf('.'); // 獲取"n"所在的位置
// 判斷合法
if (index != -1 && name.charAt(index + 1) == 'j' && name.charAt(index + 2) == 'a'
&& name.charAt(index + 3) == 'v' && name.charAt(index + 4) == 'a') {
filecon = true;
} else {
System.out.println("輸入的檔名無效!");
}
// 檢查郵箱地址是否合法
if (email.indexOf('@') != 1 && email.indexOf('.') > email.indexOf('@')) {
emailcon = true;
} else {
System.out.println("輸入的郵箱地址無效!");
}
// 輸出校驗的結果
if (filecon && emailcon) {
System.out.println("作業提交成功!");
} else {
System.out.println("作業提交失敗!");
}
}
執行該程式,當使用者輸入的檔名是以“.java”結尾,並且輸入的郵箱地址中包含有“@”符號和“.”符號,“.”符號在“@”符號之後,才能檢測通過,列印“作業提交成功!”, 如下所示:
************ 歡迎進入作業提交系統 ************
請輸入要提交的Java檔名稱:
answer.java
請輸入要提交到的郵箱地址:
[email protected]
作業提交成功!
否則,列印“作業提交失敗!”,如下所示:
************ 歡迎進入作業提交系統 ************
請輸入要提交的Java檔名稱:
abcjava
請輸入要提交到的郵箱地址:
[email protected]
輸入的檔名無效!
輸入的郵箱地址無效!
作業提交失敗!
在該程式中,首先使用 lastlndexOf() 方法獲取使用者輸入 Java 檔案中的所在的位置。因為 Java 檔案是以“.java”結尾的,因此,可以使用 charAt() 方法來檢測“.”之後的字串是否是 java,即通過如下所示的條件判斷表示式即可判斷出使用者輸入的 Java 檔名是否以“.java”結尾。
index!=-1&&name.charAt(index+1)='j'
&&name.charAt(index+2)='a'
&&name.charAt(index+3)='v'
&&name.charAt(index+4)='a'
在檢測郵箱地址是否合法時,首先使用了 indexOf() 方法判斷使用者輸入的郵箱地址中是否含有符號,然後判斷郵箱地址中的“.”符號是否在“@”符號之後,如果這兩個條件都滿足,則郵箱地址是合法的。
當檔名稱和郵箱地址的檢測都通過時,則列印“作業提交成功!”,否則列印“作業提交失敗!”。