博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
『原创』c#制作的号码mask程序
阅读量:6916 次
发布时间:2019-06-27

本文共 1483 字,大约阅读时间需要 4 分钟。

前言:在今天,各大媒体都时兴通过短信参与活动并中奖的行为,中奖号码大多用‘*’好掩盖其手机号码的中间几位如:138*****345,今天,我们做的就是用一个类库来实现这个通用功能,以便在网站和程序中引用。

 

正文:下面,我们就开始吧,首先,用vs2005建立一个c#类库,我们命名为NumMask,把他的Class1改名为容易记忆的其他名字,我改称Masker,然后我们添加如下代码:

 

ContractedBlock.gif
ExpandedBlockStart.gif
NumMask
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace NumMask
{
    
public class Masker
    {
        ArrayList numbers 
= new ArrayList();//定义一个ArrayList变量,用于收集从主程序传递来的号码
        ArrayList newnum = new ArrayList();//这是一个返回处理结果的Arraylist
        public ArrayList NumberChange(ArrayList number)
        {
            
foreach (string num in number)
            {
                numbers.Add(num);
//把接收到的号码放入numbers中
            }
            
foreach (string n in numbers)//进行处理
            {
                
char[] temp = n.ToCharArray();
                
for (int i = 3; i <= 7; i++)//把号码的3到7位用*号代替,这里应该有更好的方法,我的比较笨,希望大家可以给我建议
                {
                    temp[i] 
= '*';
                }
                
string s = new string(temp);
                newnum.Add(s);
//把Mask后的号码放入结果数组等待返回
            }
            
return newnum;
        }
    }
}

 

然后生成它,得到NumMask.dll文件

 

再建立一个winform项目,添加刚才的NumMask.dll为引用。winform界面如下:

NM.jpg

我们没有使用数据库作为号码来源,而是使用了简单的定义好的号码,在实际中可以把数据库中的号码字段读取到一个ArrayList中,然后调用NumMask来处理。

ListBox1用于显示处理结果,我们看看“开始转换”按钮的代码:记得在开头添加using NumMask;

 

ContractedBlock.gif
ExpandedBlockStart.gif
button1
private void button1_Click(object sender, EventArgs e)
        {
            ArrayList al 
= new ArrayList();//定义al为原始的号码数组
            ArrayList ab = new ArrayList();//定义ab为处理后的结果
            al.Add("13888567890");//向原始号码中添加号码
            al.Add("15878990987");
            NumMask.Masker mk 
= new Masker();//实例化一个Masker
            ab=mk.NumberChange(al);//向其中传入原始数据al,用ab接收结果
            foreach (string nums in ab)
            {
                listBox1.Items.Add(nums);
//输出结果
            }
        }

 

编译运行以下,可以看到如下图的效果:

NM1.jpg

 

小结:这个类库还有很多地方值得改造,比如判断数据的有效性等等,请大家多多给出意见和建议,帮助我更好的学习和进步。

转载地址:http://wfacl.baihongyu.com/

你可能感兴趣的文章
AKKA入门
查看>>
如何使用KeyChain保存和获取UDID
查看>>
理解css中的长度单位
查看>>
折半算法的demo
查看>>
windows && linux 访问github
查看>>
【JavaScript】容器尺寸/偏移尺寸/滚动条距离
查看>>
commons-fileupload的使用
查看>>
518抽奖软件教程之:开盘选房摇号
查看>>
Perl模块list
查看>>
网规:第2章 计算机网络规划与设计-2.5逻辑网络设计
查看>>
[软件] 装机员Ghost Win10 RS1 1067 64位纯净贺岁版2017
查看>>
Ubuntu 16.04 安装搜狗拼音
查看>>
项目开发之产品环境
查看>>
通过Intel XDK编写跨平台app(二)
查看>>
cache和buffer介绍
查看>>
论刚入门的菜鸟如何学网络安全,如何学习***测试,网络安全菜鸟的学习之旅...
查看>>
feignclient的拦截
查看>>
聊聊flink的log.file配置
查看>>
伪造的ARP应答报文,阻碍对方通信
查看>>
iOS BLE4.0开发--工作中遇到的一些坑
查看>>