我用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,String,靓号,phoneNumber,result,我用,new,numberSet 来源: https://www.cnblogs.com/xiaoyugeliaojishu/p/14882728.html