java短信群发项目:
编写一个项目,
1. 以下手机号码段,添加到Map集合当中
2. 从控制台输入要发送信息的短信号码,如果要发送多个,请用英文逗号隔开,输入短信内容
3. 编写一个短信发送类,号码发送前,先判断号码是否为空,再判断是否为红名单用户(手机号码在集合中),如果为红名 单,输出红名单数据,并计算红名单校验耗费的时间,如果条件都满足,发送短信,短信发送成功的概率为98%, 最后 展示发送成功的短信号码和内容
备注:红名单和普通名单可以同时提交发送,但是红名单的不能发送不会影响到普通名单号码的正常发送
展示的结果:是红名单输出红名单数据和耗费的时间
不是红名单输出普通用户的号码和短信的内容。
手机号码段:
头三位 中间四位 末尾四位
136 0371 0000-9999
0766
7335
7362
6385
0769
7494
3381
7496
7370
137 3383
3319
0088
8361
3315
8168
8151
0386
181 3788
3789
3782
3787
0349
3567
2234
0382
180 3951
0169
3991
3955
3928
3788
0387
3997
3923
150 0381
3719
0371
3816
0389
3681
0389
9326
3837
3802
public class Phone {
// 下标 电话
static HashMap<Integer, String> hm = new HashMap<>();
public Phone() {
//第一批
String[] middle1 = {"0371", "0766", "7335", "7362", "6385", "0769", "7494", "3381", "7496", "7370"};
//尾数
ArrayList<String> end = new ArrayList<>();
for (int i = 0; i <= 9999; i++) {
int q = i / 1000;
int b = i % 1000 / 100;
int s = i % 1000 % 100 / 10;
if (q == 0 && b == 0 && s == 0) {
String temp = "000";
temp += i;
end.add(temp);
} else if (q == 0 && b == 0) {
String temp = "00";
temp += i;
end.add(temp);
} else if (q == 0) {
String temp = "0";
temp += i;
end.add(temp);
} else {
end.add(i + "");
}
}
//下标
int index = 0;
for (String s : end) {
for (String i : middle1) {
String temp = 136 + i + s;
hm.put(index, temp);
index++;
}
}
//System.out.println("middle1=" + index);
String[] middle2 = {"3383", "3319", "0088", "8361", "3315", "8168", "8151", "0386"};
for (String s : end) {
for (String i : middle2) {
hm.put(index, 137 + i + s);
index++;
}
}
//System.out.println("middle2=" + index);
String[] middle3 = {" 3788" + "3789" + "3782" + " 3787" + "0349" + "3567" + "2234" + " 0382"};
for (String s : end) {
for (String i : middle3) {
String temp = 181 + i + s;
hm.put(index, temp);
index++;
}
}
//System.out.println("middle3=" + index);
String[] middle4 = {"3951", "0169", " 3991", " 3955", "3928", "3788", "0387", "3997", "3923"};
for (String s : end) {
for (String i : middle4) {
String temp = 180 + i + s;
hm.put(index, temp);
index++;
}
}
//System.out.println("middle4=" + index);
String[] middle5 = {"0381", "3719", "0371", "3816", "0389", "3681", "0389", "9326", "3837", "3802"};
for (String s : end) {
for (String i : middle5) {
String temp = 150 + i + s;
hm.put(index, temp);
index++;
}
}
//System.out.println("middle5=" + index);
//System.out.println(end.size());
}
//是否有红名单手机号如果有就删除并打印
public void isRedphone(ArrayList<String> p) {
boolean is =false ;
long star = System.currentTimeMillis();
Set<Integer> key = hm.keySet();
for (Integer i : key) {
String s = hm.get(i);
for (int k = 0; k < p.size(); k++) {
if (s.equals(p.get(k))) {
System.out.println("找到红名单手机号=" + s);
p.remove(k);
is=true;
}
}
}
long end = System.currentTimeMillis();
if (is){
System.out.println("一共耗时"+(end-star)+"毫秒!");
}
}
//查看手机名单
public void show(ArrayList<String> p) {
for (String s : p) {
System.out.print(s + "\t");
}
System.out.println();
}
}
public class Massage {
private ArrayList<String> p;
private String massage;
public Massage() {
}
public Massage(ArrayList<String> p, String massage) {
this.p = p;
this.massage = massage;
}
public ArrayList<String> getP() {
return p;
}
public void setP(ArrayList<String> p) {
this.p = p;
}
public String getMassage() {
return massage;
}
public void setMassage(String massage) {
this.massage = massage;
}
//发送信息
public void send() {
for (int i = 0; i < p.size(); i++) {
double is = Math.random() * 1;
//System.out.println(is);
if (is < (1 - 0.98)) {
System.out.println("电话:" + p.get(i) + "发送成功");
} else {
System.out.println("电话:" + p.get(i) + "发送成功");
}
}
System.out.println("短信内容为:" + massage);
}
}
public class Text {
public static void main(String[] args) {
Massage ma = new Massage();
Phone p = new Phone();
ArrayList<String> ph = new ArrayList<>();
Scanner sc = new Scanner(System.in);
System.out.println("请输入要发送的手机号多个用逗号分割");
//13603719999,15003714562,18438860920
String phones = sc.nextLine();
//分割
String[] split = phones.split(",");
for (String s : split) {
//用集合操控容易
ph.add(s);
}
//查看是否有红名单调用方法
p.isRedphone(ph);
System.out.println("查看:");
p.show(ph);//查看一下
ma.setP(ph);//传入手机号
System.out.println("请输入短信内容:");
String massage = sc.nextLine();
ma.setMassage(massage);
//发送
ma.send();
}
}
java短信群发项目:的更多相关文章
- 使用SMSManager短信管理器实现短信群发
import java.util.ArrayList; import android.os.Bundle;import android.provider.ContactsContract;import ...
- 【免费】iPhone上最好用的短信群发软件: 高速短信4.1
免费的最新的联系人.群组.多人发送短信软件短信群发4.1已经出炉.欢迎下载! *归属地信息让你时时记着好友的地方,让陌生号码变得不陌生: *您能够选择最经常使用的联系人然后发送高速短信; *群联系人 ...
- [TPYBoard - Micropython] 五分种学会用TPYBoard - GPS 制作短信群发机
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.什么是TPYBoard-GPS TPYBoard-GPS又称TPYBoa ...
- java短信接口调用
java短信接口调用 之前一直在一个传统的单位上班好多听容易的技术都没接触过,即使有时候想搞一搞类似于支付宝支付,短信接口调用,微信公众号,小程序之类等功能,一直有心无力终于跳槽了,估计是氛围的原因吧 ...
- java 短信猫发送短信的方法
用java实现短信收发的功能,目前一般项目中短信群发功能的实现方法大致有下面三种: · 1. 向运行商申请短信网关,不需要额外的设备,利用运行商提供的API调用程序发送 ...
- Android短信过滤项目中的观察者模式
观察者模式: 观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. 观察者模式提供了一种对象设计, 让主题和观察者之间松耦合.主题只知道观察者实现了某个接 ...
- java短信验证和注册
最近公司需要用到短信验证注册,所以申请了阿里云的短信服务.我的项目是分布式的spring boot 原理: 利用第三方发送短信 获取回执消息,然后存入缓存里面 将用户填写的验证码与缓存里面的验证码对比 ...
- thinkphp3.2短信群发项目实例
项目功能是企业给客户群发短信,我就写这么多,也不知道你能不能运行成功,如果有问题可以在QQ上问我:605114821 项目文件SMS_V2.zip下载地址,百度云:http://yun.baidu.c ...
- java短信接口
一.背景 从是Java一直想做一个跟生活联系特别紧密的东西,比如短信.邮箱.电话什么的一直是我感兴趣的,可是楞是当初没有头绪弄,恰巧今天公司在做一个 webrtc的视频会议的软件,刚好有短信这个需求, ...
随机推荐
- springboot上传文件路径存放
@Beanpublic EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return (Config ...
- React Native 启动流程简析
导读:本文以 react-native-cli 创建的示例工程(安卓部分)为例,分析 React Native 的启动流程. 工程创建步骤可以参考官网.本文所分析 React Native 版本为 v ...
- Linux文件系统与日志文件
目录 一.inode和block 1.1.inode和block概述 1.2.inode的内容 inode包含文件的元信息: 查看inode号两种方式 目录文件的结构 1.3.inode的号码 用户通 ...
- SpringBoot开发十九-添加评论
需求介绍 熟悉事务管理,并且应用到添加评论的功能. 数据层:增加评论数据,修改帖子的评论数量 业务层:处理添加评论的业务,先增加评论再更新帖子的评论数量(因为用到了两个DML操作所以要用到事务管理) ...
- Python 读写文件的正确方式
当你用 Python 写程序时,不论是简单的脚本,还是复杂的大型项目,其中最常见的操作就是读写文件.不管是简单的文本文件.繁杂的日志文件,还是分析图片等媒体文件中的字节数据,都需要用到 Python ...
- Django ORM多表查询
基于双下划线查询 根据存的时候,字段的数据格式衍生的查询方法 1.年龄大于35岁 res = models.AuthorDetails.objects.filter(age__lt=80) print ...
- CMD直接输入Java,Javac,Javap发生乱码解决方式
首先需要设置jdk的默认编码,在之前一篇博文里有 然后在cmd里直接执行chcp 65001 代表将cmd换成UTF-8的显示页 936是GBK 437为英语
- JavaWeb学习笔记(五)
本文内容 1. JSP: 1. 指令 2. 注释 3. 内置对象 2. MVC开发模式 3. EL表达式 4. JSTL标签 5. 三层架构 JSP: 1. 指令 * 作用:用于配置JSP页面,导入资 ...
- Python实现发送邮件(实现单发/群发邮件验证码)
Python smtplib 教程展示了如何使用 smtplib 模块在 Python 中发送电子邮件. 要发送电子邮件,我们使用 Python 开发服务器,Mailtrap 在线服务和共享的网络托管 ...
- java简体(繁体)转换器
<!--中文字符简繁体互相转换--> <dependency> <groupId>com.github.nobodxbodon</groupId> &l ...