❶ java 判斷號碼是手機還是固話
/**
* 驗證是否是手機號碼
*
* @param str
* @return
*/
public static boolean isPhone(String str) {
if (ValidationUtils.isEmpty(str)) {
return false;
}
Pattern pattern = Pattern.compile("^(1[3,4,5,7,8][0-9])\\d{8}$");
Matcher matcher = pattern.matcher(str);
boolean b = matcher.matches();
return b;
}
/**
* 是否是座機電話號碼
*
* @param str
* @return
*/
public static boolean isFixedLine(String str) {
if (ValidationUtils.isEmpty(str)) {
return false;
}
Pattern pattern = Pattern
.compile("^([0-9]{3}-?[0-9]{8})|([0-9]{4}-?[0-9]{7})$");
Matcher matcher = pattern.matcher(str);
boolean b = matcher.matches();
return b;
}
❷ java判斷座機號格式是否正確,應該怎麼判斷,求大神詳細解答!
/**
*思路:
*1.咱作用就是把困難留給自己,把方便留給別人,你限制人家輸入?不可取!
*2.隨便別人怎麼輸入,不管輸不輸入"-",你用字元串接受掉,然後過濾掉非數字即可!
*3.就是判斷,你4+7=11我沒算錯吧?哈哈..過濾後的字元串不是11位就算不OK?懂了?
*4.如果長度合法了,那就輸出,輸出截取前4位,OK你自己加"-"然後加上後面7位簡單吧?
*5.廢話結束,看演示,弄的不好請丟磚頭!
*/
importjava.util.Scanner;//標准設備輸入流,必備!
publicclassPhone{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
while(true){
System.out.println("請輸入坐雞電話號碼:11位合法");
Stringstr=sc.nextLine().replaceAll("[^\d]","");
if(str.length()!=11){
System.out.println("輸入錯誤請查看規則: ");
}else{
System.out.println("你輸入的是:"+(str.substring(0,4)+"-"+(str.substring(4))));
sc.close();
break;
}
}
}
}
❸ 大家好,我是java新手入門,我想問怎麼判斷座機號碼是否正確。格式****-*******
先調用 split("-") 方法,如果格式正確的話會得到一個只包含數字的字元串數組,然後遍歷這個數組,判斷每個元素的 length() 是不是4 或者7,之後對每個元素執行這個方法: Long.parseLong(num[i]), 如果元素由數字組成的話執行到這里是不會報錯的.
思路是笨了點,但是應該可行,我沒試過.
這個問題用正則表達式瞬間就解決了,所以應該把注意力放到正則表達式上面,而不是解析字元串.對了 split() 中的參數就是正則表達式.