【實例描述】
日常生活中經(jīng)常需要用戶錄入用戶信息或聯(lián)系方式,其中有一些數(shù)組的格式是固定的,程序處理邏輯也是按照這個格式來實現(xiàn)的,但是由于用戶輸入的是字符串,其靈活性較大,所以容易輸入錯誤格式的數(shù)據(jù)。本實例將演示如何使用正則表達式來確定輸入的電話號碼格式是否匹配,實例的運行效果如圖4.15 所示。
【實現(xiàn)過程】
(1)在Eclipse 中新建項目PhoneNumber,并在其中創(chuàng)建一個PhoneNumber.java 文件。在該類的主方法中創(chuàng)建標準輸入流的掃描器對象,接收用戶輸入的用戶信息。核心代碼如下所示:
protected void do_button_actionPerformed(ActionEvent e) {String text = phoneNumField.getText(); // 獲取用戶輸入
String info = check(text); // 對輸入文本進行IP
驗證
showMessageDialog(null, info); // 用對話框輸出驗證結(jié)
果
}
(2)然后對電話號碼的正確性進行驗證,首先判斷字符串是否為空,然后再通過正則表達式對字符串進行驗證。這里要注意我們設(shè)定的區(qū)號為3 位,電話號碼為8 位。核心代碼如下所示:
public String check(String text){if(text == null || text.isEmpty()){
return "請輸入電話號碼!";
}
// 定義正則表達式
String regex = "^\\d{3}-?\\d{8}|\\d{4}-?\\d{8}$";
// 判斷輸入數(shù)據(jù)是否為電話號碼
if(text.matches(regex)){
return text + "\n 是一個合法的電話號碼!";
}else{
return text + "\n 不是一個合法的電話號碼!";
}
}
【代碼解析】
本實例使用正則表達式對電話號碼進行了格式匹配驗證。正則表達式通常被用于判斷語句中,來檢查某一字符串是否滿足某一格式。它是含有一些特殊意義字符的字符串,這些特殊字符稱為正則表達式的元字符。正則表達式中的元字符及其意義如表4-1 所示。
【知識擴展】
一個Java 對象(字符串也是Java 對象)必須先初始化才能使用,否則編譯器會報告“使用的變量未初始化”錯誤。