C#根据银行卡号获取银行

你好,欢迎阅读我的文章,今天来分享一个根据银行卡号获取银行的项目。
欢迎购买我的付费专栏 1:高级C#学习 2:网络

开始开发

在VS2019(或2008以上的版本)新建一个控制台应用项目,叫BankInfoDemo,如图1
在这里插入图片描述
在这里插入图片描述
添加一个类,名为BankInfo.cs
在这里插入图片描述

核心代码

Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BankInfoDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("输入银行卡号:\n");
                var cardStr = Console.ReadLine();
                if (cardStr == null) continue;

                var cardNumber = cardStr.ToCharArray();
                var name = BankInfo.GetBankName(cardNumber); //获取银行卡的信息
                Console.WriteLine(name);
            }           
        }
    }
}

完成后:
在这里插入图片描述
不要担心,继续即可
BankInfo.cs
代码折叠后如下:
在这里插入图片描述
数组形式存储银行BIN号:

#region 数组形式存储银行BIN号

        /// <summary>
        /// 银行 BIN 号
        /// </summary>
        private readonly static long[] BankBin = 
        { 
        	102033, 
            103000, 
            185720, 
        	...//由于很长,这里就不列了,要获取完整代码请下载文件
        }
#endregion

数组形式存储发卡行.卡种名称:

#region 数组形式存储发卡行.卡种名称

        /// <summary>
        /// 发卡行.卡种名称
        /// </summary>
        private static readonly string[] BankName = { 
        	"广东发展银行.广发理财通",  
            "农业银行.金穗借记卡",  
            "昆明农联社.金碧卡",  
            ...//由于很长,这里就不列了,要获取完整代码请下载文件
        };
#endregion

获取发卡行.卡种名称:

#region public static string GetBankName:获取发卡行.卡种名称

        /// <summary>
        /// 获取发卡行.卡种名称
        /// </summary>
        /// <param name="charBin">要查的BIN号</param>
        /// <param name="offset">偏移个数:默认0表示不偏移,即从第1位开始</param>
        /// <returns>发卡行.卡种名称的字符串</returns>
        public static string GetBankName(char[] charBin, int offset = 0)
        {
            long longBin = 0;

            for (var i = 0; i < 6; i++)
            {
                longBin = (longBin * 10) + (charBin[i + offset] - 48);
            }
            Console.WriteLine("BankBin: " + longBin);

            var index = BinarySearch(BankBin, longBin);
			...//这里就不列了,要获取完整代码请下载文件

        }

        #endregion

二分法查找:

#region private static int BinarySearch:二分法查找

        /// <summary>
        /// 二分法查找 
        /// </summary>
        /// <param name="srcArray">BIN数组</param>
        /// <param name="des"></param>
        /// <returns>数组下标</returns>
        private static int BinarySearch(IReadOnlyList<long> srcArray, long des)
        {
            int low = 0;
            int high = srcArray.Count - 1;
            while (low <= high)
            {
                int middle = (low + high) / 2;
                if (des == srcArray[middle])
                {
                    return middle;
                }
                if (des < srcArray[middle])
                ...//这里就不列了,要获取完整代码请下载文件
        }

        #endregion

运行效果

在这里插入图片描述

源码下载

点击下载download.csdn.net/download/ssssswsrjhtdj/15450697

关注我

希望能帮到你,别忘了点赞+关注+购买我的付费专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值