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