号码运商判断

  1. public class OperatorUtils {
  2. private static String CMCC = "移动";
  3. private static String UNICOM = "联通";
  4. private static String TELECOM = "电信";
  5. private static String UNKNOWN = "未知";
  6. /*
  7. * 判断输入的是否为数字
  8. *
  9. * @返回true说明是数字,false说明不全是数字
  10. */
  11. private static boolean isNum(String phoneNum) {
  12. for (int i = 0; i < phoneNum.length(); i++) {
  13. if (!Character.isDigit(phoneNum.charAt(i))) {
  14. return false;
  15. }
  16. }
  17. return true;
  18. }
  19. /*
  20. * 判断运营商
  21. */
  22. public static String execute(String phone) {
  23. String head1 = "";
  24. String head2 = "";
  25. // 去除前后的空白
  26. phone = phone.trim();
  27. // 判断输入的电话号码是否合法
  28. if (phone == null || phone.length() < 11) {
  29. System.out.println("length<11");
  30. return UNKNOWN;
  31. } else {
  32. // 处理国内的+86开头
  33. if (phone.startsWith("+")) {
  34. phone = phone.substring(1);
  35. }
  36. if (phone.startsWith("86")) {
  37. phone = phone.substring(2);
  38. }
  39. }
  40. // 去除+86后电话号码应为11位
  41. if (phone.length() != 11) {
  42. System.out.println("not = 11");
  43. return UNKNOWN;
  44. }
  45. // 判断去除+86后剩余的是否全为数字
  46. if (!isNum(phone)) {
  47. System.out.println(" not num");
  48. return UNKNOWN;
  49. }
  50. // 截取前3或前4位电话号码,判断运营商
  51. head1 = phone.substring(0, 3);
  52. head2 = phone.substring(0, 4);
  53. // 移动前三位
  54. boolean cmcctemp3 = head1.equals("134") || head1.equals("135") || head1.equals("136")
  55. || head1.equals("137") || head1.equals("138")
  56. || head1.equals("139") || head1.equals("147")
  57. || head1.equals("150") || head1.equals("151")
  58. || head1.equals("152") || head1.equals("157")
  59. || head1.equals("158") || head1.equals("159")
  60. || head1.equals("182") || head1.equals("183")
  61. || head1.equals("184") || head1.equals("178")
  62. || head1.equals("187") || head1.equals("188");
  63. if (cmcctemp3) {
  64. return CMCC;
  65. }
  66. // 移动前4位
  67. boolean cmcctemp4 = head2.equals("1340") || head2.equals("1341")
  68. || head2.equals("1342") || head2.equals("1343")
  69. || head2.equals("1344") || head2.equals("1345")
  70. || head2.equals("1346") || head2.equals("1347")
  71. || head2.equals("1348") || head2.equals("1705");
  72. if (cmcctemp4) {
  73. return CMCC;
  74. }
  75. // 联通前3位
  76. boolean unicomtemp = head1.equals("130") || head1.equals("131")
  77. || head1.equals("132") || head1.equals("145")
  78. || head1.equals("155") || head1.equals("156") || head1.equals("176")
  79. || head1.equals("185") || head1.equals("186");
  80. if (unicomtemp) {
  81. return UNICOM;
  82. }
  83. //unicom 4
  84. boolean unicomtemp4 = head1.equals("1709");
  85. if (unicomtemp4) {
  86. return UNICOM;
  87. }
  88. // 电信前3位
  89. boolean telecomtemp = head1.equals("133") || head1.equals("153")
  90. || head1.equals("181") || head1.equals("177")
  91. || head1.equals("180") || head1.equals("189");
  92. if (telecomtemp) {
  93. return TELECOM;
  94. }
  95. //telecom 4
  96. boolean telecomtemp4 = head1.equals("1700");
  97. if (telecomtemp4) {
  98. return TELECOM;
  99. }
  100. return UNKNOWN;
  101. }
  102. }
时间: 2024-10-26 05:15:31

号码运商判断的相关文章

(hdu step 5.2.3)Phone List(在一堆号码中,判断是否有号码是其它号码的前缀)

题目: Phone List Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 235 Accepted Submission(s): 92   Problem Description Given a list of phone numbers, determine if it is consistent in the sense that n

自动化运维工具puppet(二)

一.Puppet作域与变量 1.作用域 作域的作就是指定特定的代码与其他的代码进隔离. 变量与默认资源将接受这些限制, 资 源标题. 资源引将不接受这样的限制. 接受范围限制的有: 变量 默认资源 不接受范围限制的有: 资源标题 资源引 在任何给定作域内, 可访问在本域中定义的变量或资源默认值, 同时继承作域中的内容, 依 此类推. 因此, 任何局部作域都可访问顶级作域中的内容. 使的范围是从该节点作域内直到 全局作域, 如下图所. 从上图可以看到: 在全局作域内只能访问作域的变量及默认值. 节

2017-11-4&mdash;稳态和暂态/瞬态(对运放积分电路的思考)[待仿真]

先直接截图了,暂态或者说瞬态都是暂时的状态,是从一个稳定态到另一个稳定态的过程. 之所以要了解这个概念是因为对于使用运放搭建的模拟PID有很多的疑惑,比如负反馈没有电阻满不满足"虚短"原则? 网上的答案大多都是按照已经满足"虚短""虚断"原则下进行分析的,包括积分电路也是如此. 积分电路 如果Vi保持正值,Vo输出为0,这个电路就是一个比较器,电容两端电压固定.这么分析的话跟积分半毛钱关系都没有啊... 积分的过程只能是发生在瞬态/暂态(充放电的

如何批量查询号码归属地,可以导入表格xlsx、txt直接查询

我发现这个程序写的还不错,批量批量查询号码归属地.公司做业务的时候需要. 程序可以从输入框导入手机号码,进行批量查询号码的归属地信息,详细信息有:省份.城市.运营商. 直接导入电子表格Excel文件查询,也可以导入txt.csv等文件. 程序在这里: 批量查询号码的归属地信息 省份.城市.运营商 程序界面: 查询速度很快,几乎是5秒内能5万数据. 说是一次能查几十万,程序做的挺好 查询结果是这样的 导出的Excel文件,根据不同的列,在表格也能非常方便筛选,可以按省份筛选.按城市筛选.按号码运营

js 各种常用js验证

判断http或者https var http = 'https:' == document.location.protocol ? false : true; js的类型检测方式 /**** js的类型检测方式->typeof.constuctor.* 推荐通过构造函数来检测变量的类型.*/var obj = {key:'value'}, arr = ["hello","javascript"], fn = function(){}, str = "

Android08_广播接受者_服务

1 广播接受者  广播的发送是通过intent开启的 需要被接收的广播:电量不足,sd卡被移除,电话移除,短信到来等等 1.1 监视sd卡的状态 需求:监视sd卡的状态,并提示用户受到影响的功能. 步骤:①买个收音机 创建一个类,继承BroadcastReceiver类(可以看做当一个类继承了该类,如果sd卡发生状态改变会接收到一条信息?) ②装上电池 在清单文件中配置 <receiver>标签(接受者) 配置属性name=”全包名”一定要配置到对应的类,不然会报错 ③调到对应频道 在rece

我的第一个python应用-web.py

https://git.oschina.net/yuweibing/web.py.git 实现了一个简单的需求: 客服部信息系统概况描述     一.系统目标 系统开发的意图为便于公司总部及外省各业务线投诉处理信息的管理,方便查看核实有关投诉处理的情况.如各业务线投诉数量,时间段内的退订退费情况,客服部内处理情况共享.亦可为市场人员提供实时数据情况查询. 二.业务需求 l  客服账号:信息的添加.修改.和查询. l  管理账号:信息的添加.修改.和查询. 信息的删除,批量导入,查询结果的导出.

objective-c overview(上)

objective-c(objc)是一种干净的语言.它在c的基础上添加了完整的面向对象特性,却只引入了有限的新语法(相比c++,真是太有限了).objc还有一个重要特性就是“动态”,可以说objc的动态特性是其他特性(Message,Dynamic Binding, Protocols, Categary, Associative References, Selectors)的基石.它的面向对象特性是动态的,因此比c++和java的更加灵活. -消息-  谈objc一定是从消息开始的.消息的语法

【学习ios之路:UI系列】iOS沙盒机制,文件读取,归档与反归档

1.IOS中的沙盒机制 IOS中的沙盒机制是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. 特点: 1.每个应用程序都在自己的沙盒内 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容 3.应用程序向外请求或接收数据都需要经过权限认证 每个沙盒含有3个文件夹:Documents, Library 和 tmp.Library包含Caches.Preferences目录.如下图