先试试不用正则表达式硬通关
通关源码(错误方法)
import java.util.Scanner;
public class StrTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String str2 = str.substring(0,str.indexOf("@")); //截取到@
String three = str2.substring(0,3); //截取前3位
if(str2.length() == 11 && three.equals("135")){ //判断是否够11位,并且前三位是否满足135
System.out.println(str2 + "是手机号码");
}else{
System.out.println(str2 + "不是手机号码");
}
}
}
看来没问题,然后咱们再看看正则表达式
掌握知识点
- 正则表达式
通关源码
import java.util.Scanner;
public class StrTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String str2 = str.substring(0,str.indexOf("@"));
if(str2.matches("^((13[0-9])|(14[5|7|9])|(15([0-3]|[5-9]))|(17[35678])|(18[0-9]))\\d{8}$")){
System.out.println(str2 + "是手机号码");
}else{
System.out.println(str2 + "不是手机号码");
}
}
}