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

Posted 小宇哥聊技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用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());

  

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

 

                                 

 

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

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

 

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

以上是关于我用Java抢到了一个手机靓号~的主要内容,如果未能解决你的问题,请参考以下文章

靓号分销平台

在片段活动中显示自定义对话框

“剁手节”来了,红包你抢到了吗?

马斯克新营收手段:推特靓号在线抢购,算把东方狠活学明白了

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_3_线程安全问题产生的原理

618 技术特辑几百万人同时下单的秒杀,为什么越来越容易抢到了?