在Java中,我們可以通過正則表達式來區分電話號碼和手機號碼。下面是一個簡單的示例代碼:
String phoneNumber = "+8613688888888"; if(phoneNumber.matches("^1[34578]\\d{9}$")) { System.out.println(phoneNumber + "是手機號碼"); }else if(phoneNumber.matches("^\\d{3}-\\d{8}|\\d{4}-\\d{7,8}$")) { System.out.println(phoneNumber + "是電話號碼"); }else { System.out.println(phoneNumber + "不是電話號碼或手機號碼"); }
在上面的代碼中,我們使用matches方法來判斷當前字符串是否符合我們所定義的正則表達式。如果符合條件,那么這個字符串就是我們所需要的電話號碼或手機號碼。
這里用到的正則表達式分別為:
- 手機號碼的正則表達式:^1[34578]\d{9}$
- 電話號碼的正則表達式:^\d{3}-\d{8}|\d{4}-\d{7,8}$
其中,手機號碼的正則表達式中,^表示匹配字符串的開頭,$表示匹配字符串的結尾,[34578]表示限定第二位數字只能是3、4、5、7、8中的一個,\d表示匹配一個數字,{9}表示該數字恰好出現9次。
對于電話號碼的正則表達式,它分為兩個部分,用|分隔。第一個部分^\d{3}-\d{8}$表示匹配區號-電話號碼格式的電話號碼,第二個部分^\d{4}-\d{7,8}$表示匹配帶有“0”的電話號碼。
總的來說,Java中通過正則表達式來區分電話號碼和手機號碼是非常簡單的,只需要定義對應的正則表達式進行匹配即可。