打乱手机号之后,穷举所有号码组成可能的合法号码
来源:互联网 发布:程序员人才网 编辑:程序博客网 时间:2024/06/06 01:06
打乱手机号之后,穷举所有号码组成可能的合法号码
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPhoneNet {
static int[] bits = new int[] {0,1,2,3,3,4,4,6,6,6,8};//我的手机号,打乱之后的数字数组
static int count=0;
public static void main(String[] args) {
Date date = new Date();
sort("", bits);
System.out.print("产生合法手机号数目【"+count+"】个!用时【" + (new Date().getTime() - date.getTime()) + "】毫秒!");
}
private static void sort(String prefix, int[] a) {
if (a.length == 1) {
//这一轮递归生成的数字组合 savedNum
String savedNum=prefix + a[0];
Pattern p = Pattern.compile("(1(([35][0-9])|(47)|[8][01236789]))\\d{8}");
Matcher matcher = p.matcher(savedNum);
if(matcher.find()){
count++;
//输出合法手机号
System.out.println("合法手机号是:"+matcher.group());
}
}
for (int i = 0; i < a.length; i++) {
sort(prefix + a[i], copy(a, i));
}
}
private static int[] copy(int[] a, int index) {
int[] b = new int[a.length - 1];
System.arraycopy(a, 0, b, 0, index);
System.arraycopy(a, index + 1, b, index, a.length - index - 1);
return b;
}
}
运行结果:
……
合法手机号是:18666443203
合法手机号是:18666443230
合法手机号是:18666443302
合法手机号是:18666443320
产生合法手机号数目【1008000】个!用时【96802】毫秒!
- 打乱手机号之后,穷举所有号码组成可能的合法号码
- 穷举彩票号码的通用过程
- 号码
- 号码
- 号码!
- 号码
- c# 判断输入的号码是否是合法的手机号码
- c# 判断输入的号码是否是合法的手机号码
- js判断手机号的号码段的服务商
- 获取所有联系人的姓名以及号码
- asp.net 读硬盘号码 格式化之后号码还变的那种
- 穷举所有可能
- 判断手机号是否为移动号码
- js号码邮箱手机号验证以及身份证
- 排列组合 查找出所有号码的组合情况
- 从文本文件中搜索所有的QQ号码
- 知道一个人的手机号怎么才能查到他的微信号码
- 保留号码的方案
- js自定义对象
- Activiti Workflow HelloWorld 示例与测试环境搭建
- powershell 对数据的行和列按需进行转换
- JAVA中字符串比较equals()和equalsIgnoreCase()的区别
- POJ 3723 Conscription
- 打乱手机号之后,穷举所有号码组成可能的合法号码
- JQuery Mobile页面的载入方式
- 把表(table)数据合并为一个字符串的SQL语句
- BAE java.security.AccessControlException: access denied 解决办法
- Coxeter魔方程序
- android 禁止listview 的ITEM被点击
- 在ubuntu的chrome中启用java plugin
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- Java && Android 环境变量配置