实现一个电话查询程序,实现的功能有输入一个电话还要号码,具体是电信的,联通的,移动的,还是虚拟运营商的都可以,除此之外,还可以查询归属地等等信息。如果有人有更优化的代码,可以在评论区一起交流讨论哦


```java
package phonebnumber1;
import com.sun.deploy.net.HttpResponse;
import phonemuber.Phonenuber;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.DataInputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
public class Phonenumber extends JFrame implements ActionListener{JPanel jpNumber;JPanel jpSet;JLabel jLabel;JTextField jTextField;JButton jButton;JTextArea jTextArea;Phonenumber() {jpNumber = new JPanel();jpSet = new JPanel();jLabel = new JLabel("请输入电话号码");jTextField = new JTextField(20);jButton = new JButton("查询");jTextArea = new JTextArea(50, 50);jpNumber.add(jLabel);jpNumber.add(jTextField);jpNumber.add(jButton);jpSet.add(jTextArea);jButton.addActionListener(this);this.add(jpNumber, BorderLayout.NORTH);this.add(jpSet, BorderLayout.CENTER);this.setTitle("电话号码检测程序");this.setVisible(true);this.setBounds(400, 200, 800, 600);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == jButton) {String regex = "^((13[0-9])|(14[5,7,9])|(15[0-3][5-9])|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";String phoneNumber = jTextField.getText().replace(" ", "");boolean isNumber=isInteger(phoneNumber);Pattern p = Pattern.compile(regex);Matcher m = p.matcher(phoneNumber);boolean isMatch = m.matches();if (isNumber){if (phoneNumber.length()>= 3) {if (phoneNumber.length() == 11) {if (isMatch) {String result = elevenValidate(phoneNumber);jTextArea.setText("手机号码 "+phoneNumber+"\n"+"运营商"+"\n"+result+""+getCityUrl(phoneNumber));}else {jTextArea.setText("请输入正确的电话号码");}} else if (phoneNumber.length() == 3) {jTextArea.setText(threeValidate(phoneNumber));} else if (phoneNumber.length() == 5) {jTextArea.setText(fiveValidate(phoneNumber));}else if (phoneNumber.length() == 7||phoneNumber.length() == 8) {jTextArea.setText(sevenAndEightValidate(phoneNumber));} else if (phoneNumber.length() == 10) {jTextArea.setText("服务电话号码");}else {jTextArea.setText("请输入正确的电话号码");}} else {jTextArea.setText("请输入正确的电话号码");}}else{jTextArea.setText("请输入字符为数字的正确的电话号码");}}}public static boolean isInteger(String str) {Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");return pattern.matcher(str).matches();}public  String getCityUrl(String mobile) {String url = "https://tcc.taobao.com/cc/json/mobile_tel_segment.htm";StringBuilder sb = new StringBuilder(url);Map<String, String> params = new HashMap<String, String>();params.put("tel", mobile);/*   params.put("status","1");//固定值params.put("modeltype", "7");//固定值*/String result = GetPostUrl(sb.toString(), params, "GET",null, 0, 0);return result;}public static String GetPostUrl(String sendUrl, Map<String, String> params, String sendType, String charset, int repeat_request_count, int repeat_request_max_count) {URL url = null;HttpURLConnection httpurlconnection = null;try {// 构建请求参数StringBuffer paramSb = new StringBuffer();if (params != null) {for (java.util.Map.Entry<String, String> e : params.entrySet()) {paramSb.append(e.getKey());paramSb.append("=");// 将参数值urlEncode编码,防止传递中乱码paramSb.append(URLEncoder.encode(e.getValue(), "UTF-8"));paramSb.append("&");}paramSb.substring(0, paramSb.length() - 1);}url = new URL(sendUrl + "?" + paramSb.toString());httpurlconnection = (HttpURLConnection) url.openConnection();httpurlconnection.setRequestMethod("GET");httpurlconnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");httpurlconnection.setDoInput(true);httpurlconnection.setDoOutput(true);// 设置http请求超时时间30000毫秒(30秒)httpurlconnection.setConnectTimeout(30000);httpurlconnection.setReadTimeout(30000);httpurlconnection.setUseCaches(true);int code = httpurlconnection.getResponseCode();if (code == 200) {DataInputStream in = new DataInputStream(httpurlconnection.getInputStream());int len = in.available();byte[] by = new byte[len];in.readFully(by);String rev = new String(by, "GBK");in.close();String arr=rev.toString().split("\t")[0];String city=arr.split(",")[2].replace("catName","运营商")+arr.split(",")[1].replace("province","归属地");return city;} else {// http 请求返回非 200状态时处理return "<?xml version=\"1.0\" encoding=\"utf-8\" ?><error>发送第三方请求失败</error>";}} catch (Exception e) {e.printStackTrace();} finally {if (httpurlconnection != null) {httpurlconnection.disconnect();}}return null;}public String sevenAndEightValidate(String phoneNumber) {String result = null;boolean sart = phoneNumber.startsWith("0") || phoneNumber.startsWith("1") || phoneNumber.startsWith("9");if (sart) {result="你的输入有错!";}else {result="座机号码";}return result;}public String fiveValidate(String phoneNumber) {String result = null;boolean yunyinshang=phoneNumber.equals("10000")||phoneNumber.equals("10010")||phoneNumber.equals("10011")||phoneNumber.equals("10060");//运营商热线boolean zhengfurexian=phoneNumber.equals("11185")||phoneNumber.equals("12310")||phoneNumber.equals("12315")||phoneNumber.equals("12319")||phoneNumber.equals("12333")||phoneNumber.equals("12345")||phoneNumber.equals("12348")||phoneNumber.equals("12358")||phoneNumber.equals("12365")||phoneNumber.equals("12366")||phoneNumber.equals("12369")||phoneNumber.equals("12591");//政府各部门各种热线boolean jieru =phoneNumber.equals("12591")||phoneNumber.equals("16300")||phoneNumber.equals("17900")||phoneNumber.equals("17908")||phoneNumber.equals("17901")||phoneNumber.equals("17909")||phoneNumber.equals("17990")||phoneNumber.equals("17990")||phoneNumber.equals("17991")||phoneNumber.equals("17999")||phoneNumber.equals("17931")||phoneNumber.equals("17950")||phoneNumber.equals("17950")||phoneNumber.equals("17951")||phoneNumber.equals("17910")||phoneNumber.equals("17911")||phoneNumber.equals("17920")||phoneNumber.equals("17921");//运营商接入码boolean jinji=phoneNumber.equals("95119")||phoneNumber.equals("12395");//应急电话boolean baoxian=phoneNumber.equals("95511")||phoneNumber.equals("95518")||phoneNumber.equals("95519")||phoneNumber.equals("95522");//保险boolean qita=phoneNumber.equals("95033")||phoneNumber.equals("95116")||phoneNumber.equals("95118")||phoneNumber.equals("95120")||phoneNumber.equals("95160");//其他服务中心或企业boolean yinhang=phoneNumber.equals("95533")||phoneNumber.equals("95555")||phoneNumber.equals("95559")||phoneNumber.equals("95566")||phoneNumber.equals("95577")||phoneNumber.equals("95588")||phoneNumber.equals("95595")||phoneNumber.equals("95598")||phoneNumber.equals("95599");//银行boolean  kejigongsi=phoneNumber.equals("95766")||phoneNumber.equals("95777")||phoneNumber.equals("95803");//其他科技公司// ||phoneNumber.equals("9580")||boolean xunhuzhongxin =phoneNumber.startsWith("958")||phoneNumber.startsWith("96");//寻呼中心if(yunyinshang){result="运营商服务热线";}else if (zhengfurexian){result="政府各部门热线";}else if(jieru){result = "各类运营商接入码";}else   if (jinji){result = "应急电话";}else if (baoxian){result="各类保险号码";}else  if (qita){result="其他服务中心或企业";}else  if(yinhang){result="银行号码";}else  if(kejigongsi){result="各类科技公司";}else  if (xunhuzhongxin){result="寻呼号码";}else {return result="你的输入不正确,请重新输入!";}return result;}public String threeValidate(String phoneNumber) {String result = null;boolean sart1 = phoneNumber.startsWith("0") || phoneNumber.startsWith("9") || phoneNumber.startsWith("9");if (sart1) {result="你的输入有错!";}else {result="电话号码";}boolean one=phoneNumber.equals("110")||phoneNumber.equals("120")||phoneNumber.equals("119")||phoneNumber.equals("122")||phoneNumber.equals("999");boolean two=phoneNumber.equals("117")||phoneNumber.equals("184")||phoneNumber.equals("114")||phoneNumber.equals("121");if(one){result="紧急电话";}else if (two){result="公共服务号码";}else {result = "请输入正确号码";}return result;}public String elevenValidate(String phoneNumber) {String result = null;/*String subResult = phoneNumber.substring(0, 3);*/// 截取前3或前4位电话号码,判断运营商String head1 = phoneNumber.substring(0, 3);String head2 = phoneNumber.substring(0, 4);// 移动前三位boolean cmcctemp3 = head1.equals("134") || head1.equals("135") || head1.equals("136")|| head1.equals("137") || head1.equals("138")|| head1.equals("139") || head1.equals("147")|| head1.equals("150") || head1.equals("151")|| head1.equals("152") || head1.equals("157")|| head1.equals("158") || head1.equals("159")|| head1.equals("165") || head1.equals("178")|| head1.equals("182") || head1.equals("183")|| head1.equals("184") || head1.equals("187")|| head1.equals("188") || head1.equals("198");if (cmcctemp3) {return result = "中国移动";}// 移动前4位boolean cmcctemp4 = head2.equals("1340") || head2.equals("1341")|| head2.equals("1342") || head2.equals("1343")|| head2.equals("1344") || head2.equals("1345")|| head2.equals("1346") || head2.equals("1347")|| head2.equals("1348") || head2.equals("1705");if (cmcctemp4) {return result ="中国移动";}// 联通前3位boolean unicomtemp = head1.equals("130") || head1.equals("131")|| head1.equals("132") || head1.equals("140")|| head1.equals("145") || head1.equals("146")|| head1.equals("155") || head1.equals("156")|| head1.equals("166") || head1.equals("175")|| head1.equals("176")|| head1.equals("185") || head1.equals("186");if (unicomtemp) {return result = "中国联通";}//unicom 4boolean unicomtemp4 = head1.equals("1709");if (unicomtemp4) {return result = "中国联通";}// 电信前3位boolean telecomtemp = head1.equals("133") || head1.equals("149")|| head1.equals("153") || head1.equals("173")||  head1.equals("174") || head1.equals("177")|| head1.equals("180") || head1.equals("181")|| head1.equals("189") || head1.equals("191")||head1.equals("199");if (telecomtemp) {return result = "中国电信";}//telecom 4boolean telecomtemp4 = head1.equals("1700");if (telecomtemp4) {return result = "中国电信";}return result;}public static void main(String[] args) {new Phonenumber();}}

具体的效果图

基于java实现的一个电话号码程序,3位,5位,7位,8位,11位相关推荐

  1. java聊天程序论文_【基于java的仿qq聊天程序的设计与实现论文最终版材料】

    基于java的仿qq聊天程序的设计与实现(论文)(最终版) <基于java的仿qq聊天程序的设计与实现(论文).doc>由会员分享,可免费在线阅读全文,更多与<基于java的仿qq聊 ...

  2. 基于java SSM框架+微信小程序实现电子书城阅读器演示【附项目源码+论文说明】分享

    基于java SSM框架+微信小程序实现电子书城阅读器演示 摘要 而随着互联网技术的不断发展,互联网已经渗入到我们生活中的各个方面.移动设备的普及使我们的生活发生了翻天覆地的变化,这种变化也深刻影响着 ...

  3. 基于java SSM框架+微信小程序实现电子书城阅读器演示【附项目源码+论文说明】

    基于java SSM框架+微信小程序实现电子书城阅读器演示 摘要 而随着互联网技术的不断发展,互联网已经渗入到我们生活中的各个方面.移动设备的普及使我们的生活发生了翻天覆地的变化,这种变化也深刻影响着 ...

  4. 基于Java的在线网盘程序—ZFile(推荐开源项目)

    文章目录 一.介绍ZFile项目 二.快速使用 windows部署 下载安装jar包与启动服务 三.实战(添加资源并查看.下载) 前置配置:系统初始化(注册用户名.密码,站点名称) 前置配置:基本配置 ...

  5. 用java编写一个故事的程序_使用Java怎么编写一个递归程序

    使用Java怎么编写一个递归程序 发布时间:2021-02-20 16:05:44 来源:亿速云 阅读:52 作者:Leah 这篇文章将为大家详细讲解有关使用Java怎么编写一个递归程序,文章内容质量 ...

  6. (4opencv)如何基于GOCW,创建一个实时视频程序

    直接使用提供的代码框架进行修改,是最快得到效果的方法:但是这样的灵活性较差,而且真正的程序员从来都不会停滞在这一步:我们需要的是"将框架解析到最小化.理清楚每个构建之间的关系",只 ...

  7. 计算机毕业设计ssm基于Java的家校沟通程序

    最新计算机专业原创毕业设计参考选题都有源码+数据库是近期作品 你的选题刚好在下面有,有时间看到机会给您发 [1] jsp老年人健康饮食管理系统 [2] ssm智创员工管理系统 [3] JSP社团管理系 ...

  8. java语言打印1到10的偶数_#Java编程# 编写一个应用程序创建两个线程,一个线程打印输出1~100之间所有的奇数,另外一 求写一个用JAVA求1~...

    import java.util.Random; class A extends Thread { \tint i=1; \tRandom r=new Random(); \tpublic void ...

  9. 如何用Java自己写一个.exe程序

    如何用Java自己写一个.exe程序 之前遇到要写一个 .exe程序的一个题,后面在网上查阅资料,发现Java其实也是可以转换成exe程序的,但是要借助一些工具生成,我是用exe4j生成.exe程序. ...

  10. 基于JAVA学习自律养成小程序前台.mp4计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA学习自律养成小程序前台.mp4计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA学习自律养成小程序前台.mp4计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: ...

最新文章

  1. DataGridView 密码列(显示为*号)的设置
  2. SecureRandom
  3. Android项目启动时短暂的黑屏白屏处理
  4. 详解Ubuntu10.10下Qt连接Mysql数据库
  5. python基础教程书籍推荐-Python入门书籍推荐,我的清单
  6. 第一周(1.8-1.14)
  7. 基于用户行为的兴趣标签模型
  8. python怎么创建变量_python怎么创建变量
  9. python 定时器_按键精灵定时器介绍和使用,不会的小伙伴速速看看精辟
  10. windows下面使用nssm设置新的服务实现开机自启等
  11. 传奇霸业维护服务器,37传奇霸业6月21日部分区服维护计划
  12. 理想汽车市值逼近蔚来,王兴曾多次在饭否为其站台
  13. 马云宣布再捐赠800台呼吸机 用最快的速度送到欧洲国家一线医院
  14. 个人宏工作簿PERSONAL.XLSB 保存位置 启动加载项
  15. 怎么批量抠复杂的图_抠图怎么抠?一次教你五招!
  16. python 通过模板生成文章_自动生成文章_python自动生成文章 - 云+社区 - 腾讯云
  17. python使用Snap7读写西门子S7系列PLC
  18. 联想7400打印机如何与手机连到一起_想买一台打印机自己印书看,是买激光的还是喷墨的?...
  19. 千万流量大型分布式系统架构设计实战(干货)
  20. 2020switch电信最快的dns_《2020switch电信最快的dns》电影_2020switch电信最快的dns正片免费观看-扬州人才服务网...

热门文章

  1. Mysql读写分离的原理及配置--amoeba
  2. 激光雷达工作原理简介
  3. 移动前端开发与WEB前端开发有什么联系与区别?
  4. ensp下载与安装问题
  5. 免费又好用怎么把文字转换成语音呢?分享我常用的3个配音神器
  6. log4j的详细配置(最省心完美配置)
  7. rgmii clock delay
  8. 阿里技术人才能力模型(深度解读系列之二)
  9. JS设计模式 - 工厂模式
  10. java分布式文件存储服务实战