❶ 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() 中的参数就是正则表达式.