我用Java抢到了一个手机靓号~

        最近闲来无事,想注册一些不常用的软件来玩,但是发现需要手机号注册,可我又不希望用我常用的手机号,所以就想起来买一个小号注册。正好最近看到网上有出售手机号的,支持自选号码,顿时我就有想法了

        但是我在选号平台上搜索了几次,发现出现靓号的概率很小很小,总是挑不到我喜欢的靓号。这可怎么办?是样本太少,还是我频率太低?行吧,不想多说了,键来~

        作为程序员,我觉得我们很有必要用自己的知识和能力,来给我们挑选一个靓号。我先Google了一下,想看看有没有现成的代码供我学习,但是很遗憾,没有,仅有的都是一些散乱的代码,根本无法正常运行。没办法,那就上手写吧!经过长达几个小时的coding奋斗,我完成了搜索靓号的代码工作。

        此项目可以供Java初学者进行简单项目学习,也可供其他技术人员在此项目基础上进行开发(禁止商用)。阅读本文你可以学到:

                 1.文件IO的读取与保存。

                 2.okhttp的get请求使用。

                 3.maven引入依赖包。

                 4.正则表达式的使用与分析。

                 5.Java8 Stream的使用。

                 6.靓号的获取。

         先看一下伪代码,由以下四部分构成。详细源代码关注[小宇哥聊技术]发送靓号获取。

顶层设计:

PhoneNumber phoneNumber = new PhoneNumber();
Set<Long> numberSet = phoneNumber.readFile(); // 读取文件
phoneNumber.scan(numberSet); // 搜索靓号
phoneNumber.writeFile(numberSet); // 保存靓号
phoneNumber.regex40(numberSet); // 分析号码,找出你喜欢的靓号
复制代码

        这个项目,我使用了文件来进行号码的存储,把所有搜索的号码全都存放到文件中进行保存。

ArrayList<String> arrayList = new ArrayList<>();
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String strLine;
while ((strLine = bufferedReader.readLine()) != null) {    
    arrayList.add(strLine);
}
bufferedReader.close();
fileReader.close();
复制代码

        然后我们开始通过分析页面,找出所需要的url进行分析响应结构,这个页面还是非常简单的,我们对字符串进行简单的处理,就把数据的结构给解析出来了。伪代码如下:

String url = "";
OkHttpClient client = new OkHttpClient();
for (int i = 0; i < NUM_MAX; i++) {    
    Request request = new Request.Builder().url(url).build();    
    Call call = client.newCall(request);    
    String result = call.execute().body().string();    
    JSONObject jsonObject = JSON.parseObject(result);    
    TimeUnit.SECONDS.sleep(1);
}
复制代码

        把阈值调大,循环执行多次,我们的文件系统中就已经保存到几万条数据了,现在已经可以对号码进行分析了。如何找到一个别人没有发现的靓号是关键,我们可以通过正则表达式来进行分析处理,找到里面最好的靓号。

result = result.stream()
.filter(temp -> {              
    String pattern = "(1|2|3|5|6|7|8|9){11}";              
    Boolean isMatch = Pattern.matches(pattern, temp.toString());             
    return isMatch ? true : false;          
    })          
    .collect(Collectors.toSet());
复制代码

        看一下我们找到的结果吧~

                            

PS:

上图这几个号码一般不会被我们抽到的,因为这种靓号基本不会被放到公共库中,我们也就无从抽取了。(此项目被部分删减)

以上就是本次的教程。喜欢的小哥哥小姐姐们希望点赞转发评论三连哦~

关注[小宇哥聊技术]发送靓号获取源代码。

我们学习就是为了改变世界。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享