黑马程序员技术交流社区
标题:
正则表达式
[打印本页]
作者:
██
时间:
2014-6-11 00:29
标题:
正则表达式
写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,
后面4位任意数字,最后5位为任意相同的数字。
请问大神们,这个题怎么做?
正则表达式的每个符号具体是什么意思?
作者:
肥洋洋
时间:
2014-6-11 01:11
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String str=in.nextLine();
String reg="[1][3458][\\d]{4}([0-9])\\1+";
boolean b=str.matches(reg);
System.out.println(b);
}
}
复制代码
代码这样哦,希望可以帮到你
作者:
lvc
时间:
2014-6-11 02:44
package com.itheima;
/*
*5、 写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
例如:18601088888、13912366666
*/
public class Test5 {
public static void main(String args[])
{
//获取输入值
String mobile="13912366766";
//把字符串转换成字符数组
char[] array=mobile.toCharArray();
//数字或者字母判断开关
boolean excheng=true;
//判断输入的是否全为数字
for(int i=0;i<=array.length-1;i++)
{
switch(array[i])
{
case '0':
break;
case '1':
break;
case '2':
break;
case '3':
break;
case '4':
break;
case '5':
break;
case '6':
break;
case '7':
break;
case '8':
break;
case '9':
break;
default:
System.out.println("请输入数字");
excheng=false;
}
}
//判断是否有11位
if(mobile.length()==11&&excheng==true)
{
//判断第一位是否为1
if(array[0]=='1')
{
//取出第二位值,并判断是否为3458中的其中一个
int secondly=array[1];
switch(secondly)
{
case '3':
//判断后五位是否相等
Five(array);
break;
case '4':
Five(array);
break;
case '5':
Five(array);
break;
case '8':
Five(array);
break;
default:
System.out.print("输入有误3");
}
}else
{
System.out.println("输人错误2");
}
}else
{
System.out.println("输人错误1");
}
}
public static void Five(char[] array)
{
//判断开关
boolean excheng=true;
//取出后五位进行比较
for(int i=array.length-1;i>=array.length-5;i--)
{
if(array[array.length-1]!=array[i])
{
System.out.println("这不是尾号5连的手机");
excheng=false;
//continue;//结束当次循环
//结束循环
break;
}
}
//当excheng==true时自行
if(excheng)
{
System.out.println("这是尾号5连的手机");
}
}
}
复制代码
作者:
lvc
时间:
2014-6-11 02:48
楼上老兄用字符串也很好。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2